我只需要 C# 中的链表帮助,C++ 中的链表对于指针来说有点容易,但我在 C# 中遇到了一些问题我阅读了http://msdn.microsoft.com上提供的示例,但我不知道如何链接两个不同的链表
有效的方式似乎是将 LinkedListNode 放入一个链表中,所以假设我有两个链表
LinkedList L1 = new LinkedList(); LinkedList L2 = new LinkedList(); 然后假设我有以下节点
LinkedListNode<String> Ln1 = new LinkedListNode<String>("Orange");
LinkedListNode<String> Ln2 = new LinkedListNode<String>("Banana");
LinkedListNode<String> Ln3 = new LinkedListNode<String>("Apple");
LinkedListNode<String> Ln4 = new LinkedListNode<String>("Strawberry");
我只是将它们添加到我拥有的列表中:
L1.AddLast(Ln1);
L1.AddLast(Ln2);
L2.AddLast(Ln3);
L2.AddLast(Ln4);
好的,现在假设我想将 L1 的最后一个元素链接到 L2 中的第一个元素,这可能吗?我首先尝试了这个:
L1.Last.Next = L2.First; 我完全失败并出现错误:无法将属性或索引器“System.Collections.Generic.LinkedListNode<string>.Next”分配给——它是只读的
好吧,我试过了:
Ln2.Next = Ln3;
我又失败了
我最后一次尝试是
LinkedListNode<String> node1=L1.Last;
LinkedListNode<String> node2 = L2.First;
node1.Next = node2;
出现错误:无法将属性或索引器“System.Collections.Generic.LinkedListNode<string>.Next”分配给——它是只读的
所以有什么帮助吗?如何链接它们?
一个附加问题:例如,是否可以通过索引到达链表中的元素?
我提出了这个简单的算法,它可以工作:
int i = 0;
foreach (var item in L2)
{
Console.WriteLine(item);
i++;
}
有自动的方法吗?
感谢您的帮助