我很想知道为什么 LinkedListNode 类公开的所有属性(Next、Previous、Value 等)都是只读的,即这些属性没有相应的 setter ?
我试图解决一个与链表相关的小算法问题,并决定使用 .Net 的内置 LinkedList 类。但是由于 LinkedListNode 类属性的只读行为,我无法覆盖这些值或更改任何给定节点的“Next”指针。
谢谢
最佳答案
Value
确实有一个setter,声明是public T Value { get; set; }
.
Next
和 Previous
上缺少 setter 会阻止您将链表转换为树形或 LinkedList
方法所采用的其他拓扑结构'旨在应对。
您可以使用列表的方法(例如 AddBefore
)更改这些属性,这些方法保留了不变性,即每个 LinkedListNode
只是一个列表的成员,node。 Next.Previous
总是指向node
,并且没有环等
关于c# - 为什么 LinkedListNode 类是不可变的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25464828/