编程语言
首页 > 编程语言> > c#如何链接2个LinkedListNode?

c#如何链接2个LinkedListNode?

作者:互联网

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


属性或索引器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

解决方法:

您正在尝试将项目添加到其他项目,但您应该将它们添加到您已经在执行的LinkedList本身:

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

你想改变他们的订单吗?它看起来只能在添加它们时才能完成,基于the methods available on LinkedList<T>.所以你想要做这样的事情:

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

或者,在您的情况下,只需将调用顺序反转为.AddFirst()将产生相同的结果:

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

这会将node3添加到列表的开头,然后将node2添加到列表的开头(将node3推送到第二个元素),然后将node1添加到列表的开头(将node3添加到第三个元素,将node2添加到第二个元素)元件).

标签:c,c-3-0,c-4-0
来源: https://codeday.me/bug/20190713/1450138.html