c# - 为什么 LinkedListNode 类是不可变的?

标签 c# .net linked-list

我很想知道为什么 LinkedListNode 类公开的所有属性(Next、Previous、Value 等)都是只读的,即这些属性没有相应的 setter ?

我试图解决一个与链表相关的小算法问题,并决定使用 .Net 的内置 LinkedList 类。但是由于 LinkedListNode 类属性的只读行为,我无法覆盖这些值或更改任何给定节点的“Next”指针。

谢谢

最佳答案

Value 确实有一个setter,声明是public T Value { get; set; } .

NextPrevious 上缺少 setter 会阻止您将链表转换为树形或 LinkedList 方法所采用的其他拓扑结构'旨在应对。

The LinkedList class does not support chaining, splitting, cycles, or other features that can leave the list in an inconsistent state.

您可以使用列表的方法(例如 AddBefore)更改这些属性,这些方法保留了不变性,即每个 LinkedListNode 只是一个列表的成员,node。 Next.Previous总是指向node,并且没有环等

关于c# - 为什么 LinkedListNode 类是不可变的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25464828/

相关文章:

c - 具有指针和链表删除功能的不兼容类型

c# - 在列表框中显示Oxyplot图表的动态列表

c# - 将数据从数据库返回到 View ?

c# - 如何获取 guest /管理员的本地组名?

.net - 如何根据 objectGUID 获取 AD 用户的 'memberof' 属性值?

比较字符串并将其插入到链接列表

c# - 带有更新 2 的 Visual Studio 2015 - 'The Scc Display Information package did not load correctly'

c# - 如何从 WCF 服务响应中删除 outerXML

c# - 我可以强制 Windows 挑战用户进行身份验证吗?

c - 任务系统问题 - 任务将运行两次(重新发布一次)