.Next 不能分配给它是只读-6ren">
gpt4 book ai didi

c# 如何链接 2 LinkedListNode?

转载 作者:行者123 更新时间:2023-11-30 13:17:01 25 4
gpt4 key购买 nike

我创建了一个链表和几个节点,我想链接这些节点,不断收到此错误消息。

"属性或索引器 System.Collections.Generic.LinkedListNode<>.Next 不能分配给它是只读的。"

        var link = new LinkedList<int>();
var node1 = new LinkedListNode<int>(1);
var node2 = new LinkedListNode<int>(2);
var node3 = new LinkedListNode<int>(3);

link.AddFirst(node1);
link.AddFirst(node2);
link.AddFirst(node3);

node1.Next = node2; ---> .next is read only
node2.Next = node3; ---> .next is read only

最佳答案

您需要使用 AddAfterAddBefore列表的方法。使用这些,您可以直接在给定项目之前或之后插入项目。

不幸的是 LinkedListNode<T> .NET 中的类不允许您更改 NextPrevious属性,因为它们没有 set访问器。

如果你想改变列表的顺序,你还需要使用 Remove方法将项目从其先前的位置移除。我推荐以下形式:

LinkedListItem<T> foo = /*fetch your item here*/
LinkedListItem<T> bar = /*the one to come right after foo,
as a result of running the code*/
list.Remove(foo);
list.AddBefore(bar, foo);

您可以将其更改为在之后插入而不是在之前插入。

关于c# 如何链接 2 LinkedListNode?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17496864/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com