我希望能够将IEnumerable<IEnumerable<T>>
融合到IEnumerable<T>
中(即将所有单个集合合并为一个)。 Union
运算符仅适用于两个集合。有什么想法吗?
答案 0 :(得分:88)
尝试
var it = GetTheNestedCase();
return it.SelectMany(x => x);
SelectMany是一个LINQ转换,实质上是说“For Collection中的每个Item都返回一个集合的元素”。它会将一个元素转换为多个元素(因此SelectMany)。将集合集合分解为平面列表非常有用。
答案 1 :(得分:14)
var lists = GetTheNestedCase();
return
from list in lists
from element in list
select element;
是使用C#3.0查询表达式语法执行此操作的另一种方法。