C# 是否将LinkedList附加到另一个LinkedList的末尾?

C# 是否将LinkedList附加到另一个LinkedList的末尾?,c#,C#,假设我有以下几点: LinkedList<int> list1 = new LinkedList<int>(); LinkedList<int> list2 = new LinkedList<int>(); list1.AddLast(1); list1.AddLast(2); list2.AddLast(1); list2.AddLast(2); 除了要连接在一起的列表 在C#中合并两个LinkedList的正确方法是什么?我知道有一个 U

假设我有以下几点:

LinkedList<int> list1 = new LinkedList<int>();
LinkedList<int> list2 = new LinkedList<int>();

list1.AddLast(1);
list1.AddLast(2);

list2.AddLast(1);
list2.AddLast(2);
除了要连接在一起的列表

在C#中合并两个LinkedList的正确方法是什么?我知道有一个<代码> UNIONE()/Cux>方法,但在C++中,LIKEDLIST的优点在于,如果需要,可以很容易地组合和断开列表。 LinkedList类不支持链接、拆分、循环、, 或其他可能使列表处于不一致状态的功能


如果使用
列表
而不是
链接列表
,则同样简单。这里有几种方法可以完成整个列表

林克

我在msdn上找到的其他方法

List<int> combinedList = new List<int>();
combinedList.AddRange(list1);
combinedList.AddRange(list2);
List combinedList=new List();
combinedList.AddRange(列表1);
combinedList.AddRange(列表2);

我选择LinkedList是因为我认为它是组合和拆分列表的理想选择。对于这类问题,所有的列表都更好吗?我会这么说。特别是因为LINQ有一个
ToList()
,我不认为它有一个
ToLinkedList()
等价物。根据这篇文章,链接列表的性能也较差。在我的个人测试中,我无法找到一个链接列表比标准的.NET列表更好的例子。我测试了插入、连接、删除、迭代等。从来没有一个链表比标准的list类更好。@evanmcdonnal,LinkedList在添加、删除记录时有更好的性能。特别是,当从列表中间删除项目时,您可以看到性能的提高。Microsoft文档称列表上的RemoveAt是“一个O(n)操作,其中n是(计数-索引)”,这意味着它必须将内容上移。因此,使用linkedlist(RemoveFirst/RemoveLast)从开头或结尾删除应该更快。请检查此问题-尝试使用列表。看这里为什么:
var combinedList = list1.Concat(list2).ToList();
List<int> combinedList = new List<int>();
combinedList.AddRange(list1);
combinedList.AddRange(list2);