代码之家  ›  专栏  ›  技术社区  ›  Cédric Boivin

在LINQ中展平列表

  •  263
  • Cédric Boivin  · 技术社区  · 15 年前

    我有一个Linq查询,它返回 IEnumerable<List<int>> 但我只想回来 List<int> 所以我想把我的所有记录合并到 IEnumerable<列表<int>> 只有一个数组。

    例子:

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

    我想把我所有的成绩 IEnumerable<列表<int>> 只有一个 清单& lt;int & gt;

    因此,从源阵列: [1,2,3,4]和[5,6,7]

    我只想要一个阵列 [1,2,3,4,5,6,7]

    谢谢

    5 回复  |  直到 11 年前
        1
  •  474
  •   kalyfe    12 年前

    尝试 SelectMany()

    var result = iList.SelectMany( i => i );
    
        2
  •  78
  •   recursive    15 年前

    使用查询语法:

    var values =
    from inner in outer
    from value in inner
    select value;
    
        3
  •  21
  •   Dylan Beattie    15 年前
    iList.SelectMany(x => x).ToArray()
    
        4
  •  11
  •   mqp    15 年前

    这样地?

    var iList = Method().SelectMany(n => n);
    
        5
  •  10
  •   Daniel    15 年前

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

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