在LINQ中展开列表

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

例如:

 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]

谢谢

5 Solutions collect form web for “在LINQ中展开列表”

尝试SelectMany()

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

使用查询语法:

 var values = from inner in outer from value in inner select value; 
 iList.SelectMany(x => x).ToArray() 

喜欢这个?

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

如果你有一个List<List<int>> k你可以做

 List<int> flatList= k.SelectMany( v => v).ToList(); 
  • 使用entity framework创builddynamic查询
  • 为什么没有Linq方法通过谓词返回不同的值?
  • 与Linq一起使用IQueryable
  • 用linq从两个对象列表中创build一个列表
  • LINQ单对第一
  • LINQ:使用Lambdaexpression式获取CheckBoxList的所有选定值
  • 如何将IEnumerable <String>拆分为IEnumerable <string>组
  • 在c#/ LINQ中将数组转换为string的最短方法
  • 一个面向对象的程序员怎么能够围绕数据库驱动的编程?
  • 什么是LINQ的Java等价物?
  • 为什么有一些对象属性UnaryExpression和其他MemberExpression?