如何将ienumerable集合附加到C#中的现有列表

时间:2010-11-01 07:24:32

标签: c# list ienumerable generics

我有三个函数正在返回一个IEnumerable集合。 现在我想将所有这些组合成一个List。 那么,有什么方法可以将IEnumerable中的项目附加到列表中。 我的意思是没有每个循环?

2 个答案:

答案 0 :(得分:30)

嗯,某些东西必须循环...但在LINQ中你可以轻松使用ConcatToList扩展方法:

var bigList = list1.Concat(list2).Concat(list3).ToList();

请注意,这将创建列表,而不是将项目附加到现有列表。如果您想将它们添加到现有列表中,List<T>.AddRange可能就是您所追求的目标:

bigList.AddRange(list1);
bigList.AddRange(list2);
bigList.AddRange(list3);

答案 1 :(得分:6)

如果您已有名单:

list.AddRange(yourCollectionToAppend);

如果您有2个可用的枚举但尚未创建列表:

firstCollection.Concat(secondCollection).ToList();