如何减少IEnumerable< IEnumerable< Foo>>到IEnumerable< Foo>?
-
05-07-2019 - |
题
对不起这个奇怪的标题。我想要实现的目标很简单:
IEnumerable<IEnumerable<Foo>> listoflist;
IEnumerable<Foo> combined = listoflist.CombineStuff();
示例:
{{0, 1}, {2, 3}} => {0, 1, 2, 3}
我很肯定有一个Linq表达式......
旁注:列表可能很大。
解决方案
正如leppie所说,你想要 Enumerable.SelectMany
。最简单的形式是:
combined = listOfList.SelectMany(x => x);
在查询表达式中,如果您有来自子句的多个,则会调用
SelectMany
,因此另一种方法是:
combined = from x in listOfList
from y in x
select y;
其他提示
的SelectMany()
行
不隶属于 StackOverflow