.NET:组合两个通用列表

时间:2010-01-04 22:34:15

标签: .net list

假设我有两个相同类型的通用列表。如何将它们组合成该类型的通用列表?

4 个答案:

答案 0 :(得分:32)

这应该可以解决问题

List<Type> list1;
List<Type> list2;

List<Type> combined;
combined.AddRange(list1);
combined.AddRange(list2);

答案 1 :(得分:19)

您只需将一个列表中的项目添加到另一个列表中即可:

list1.AddRange(list2);

如果您想保留列表并创建一个新列表:

List<T> combined = new List<T>(list1);
combined.AddRange(list2);

或使用LINQ方法:

List<T> combined = list1.Concat(list2).ToList();

通过在向其添加项目之前创建具有正确容量的列表,可以获得更好的性能:

List<T> combined = new List<T>(list1.Count + list2.Count);
combined.AddRange(list1);
combined.AddRange(list2);

答案 2 :(得分:10)

如果您使用的是C#3.0 / .Net 3.5:

List<SomeType> list1;
List<SomeType> list2;

var list = list1.Concat(list2).ToList();

答案 3 :(得分:0)