C#中获取列表节点引用/视图的官方解决方案问询
问题:寻找.NET官方支持的高效双向链表节点操作方案
当前使用多边形环形缓冲区时,删除元素需要复制数据,希望改用更高效的列表结构,需满足以下要求:
- O(1)开销删除任意元素
- O(1)访问当前节点的下一个元素
- 无需处理环形缓冲区的首尾环绕特殊情况
- 无内存分配需求
简言之,需要一种简单数据结构,具备O(1)增删操作、O(1)本地(相对)元素访问能力,无需处理首尾环绕特殊情况。可以通过已获取的节点直接修改和操作列表,比如实现“在最小值节点前后添加元素x”这类操作。
现询问:C#是否提供可获取此类节点引用(或“节点视图”)的官方库/特性,支持以下操作且无不可变列表的限制?
- 获取下一个节点
- 访问节点值
- O(1)删除节点
以C++为例,类似的结构如下:
template<typename T> struct ListNode { struct List *list; ListNode *next, *previous; T *value; ListNode* insertAfter(T *newValue); ListNode* insertBefore(T *newValue); void removeFromList(); void destroy(); }; struct List { ListNode *firstNode, *lastNode; unsigned int length; };
(无需关注代码细节或内存管理,仅作理解参考,该结构类似unsafe上下文带指针的C#代码。)
我可以自行实现泛型列表,但更希望了解.NET官方发布的库或特性是否有直接满足该需求的解决方案。
内容的提问来源于stack exchange,提问作者ChrisoLosoph
相关产品推荐
相关产品推荐

