【发布时间】:2011-05-03 07:20:45
【问题描述】:
我有三个函数返回一个 IEnumerable 集合。 现在我想将所有这些合并到一个列表中。 那么,是否有任何方法可以将 IEnumerable 中的项目附加到列表中。 我的意思是没有每个循环?
【问题讨论】:
标签: c# list ienumerable generics
我有三个函数返回一个 IEnumerable 集合。 现在我想将所有这些合并到一个列表中。 那么,是否有任何方法可以将 IEnumerable 中的项目附加到列表中。 我的意思是没有每个循环?
【问题讨论】:
标签: c# list ienumerable generics
好吧,某事将不得不循环......但在 LINQ 中,您可以轻松使用 Concat 和 ToList 扩展方法:
var bigList = list1.Concat(list2).Concat(list3).ToList();
请注意,这将创建一个 新 列表,而不是将项目附加到 现有 列表。如果您想将它们添加到现有列表中,List<T>.AddRange 可能就是您所追求的:
bigList.AddRange(list1);
bigList.AddRange(list2);
bigList.AddRange(list3);
【讨论】:
如果你已经有一个列表:
list.AddRange(yourCollectionToAppend);
如果您有 2 个可枚举项并且尚未创建列表:
firstCollection.Concat(secondCollection).ToList();
【讨论】: