在LINQ中Flatten List

我有一个返回IEnumerable<List<int>>的LINQ查询,但我只想返回List<int>,所以我想将我的IEnumerable<List<int>>中的所有记录合并到一个数组中。

例子:

IEnumerable<List<int>> iList = from number in
(from no in Method() select no) select number;

我想把我所有的结果IEnumerable<List<int>>只给一个List<int>

因此,从源数组: [1,2,3,4][5,6,7]

我只想要一个数组 [1,2,3,4,5,6,7] < / p >

谢谢

151276 次浏览

尝试SelectMany()

var result = iList.SelectMany( i => i );

像这样的吗?

var iList = Method().SelectMany(n => n);

如果你有List<List<int>> k,你可以这样做

List<int> flatList= k.SelectMany( v => v).ToList();
iList.SelectMany(x => x).ToArray()

查询语法:

var values =
from inner in outer
from value in inner
select value;