我有三个函数正在返回一个IEnumerable集合。 现在我想将所有这些组合成一个List。 那么,有什么方法可以将IEnumerable中的项目附加到列表中。 我的意思是没有每个循环?
答案 0 :(得分:30)
嗯,某些东西必须循环...但在LINQ中你可以轻松使用Concat
和ToList
扩展方法:
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();