我希望能够融合IEnumerable<IEnumerable<T>>
到IEnumerable<T>
(即将所有单独的集合合并为一个)。Union
运算符仅适用于两个集合。任何的想法?
Joannes Vermorel
问问题
16808 次
2 回答
93
尝试
var it = GetTheNestedCase();
return it.SelectMany(x => x);
SelectMany 是一个 LINQ 转换,它本质上说“对于集合中的每个项目,返回集合的元素”。它将一个元素变成多个元素(因此是 SelectMany)。它非常适合将集合的集合分解为一个平面列表。
于 2008-11-26T16:05:45.733 回答
14
var lists = GetTheNestedCase();
return
from list in lists
from element in list
select element;
是使用 C# 3.0 查询表达式语法执行此操作的另一种方法。
于 2009-04-21T21:33:00.070 回答