代码之家  ›  专栏  ›  技术社区  ›  mafu

如何将IEnumerable<IEnumerable<foo>>减少为IEnumerable<foo>?

  •  3
  • mafu  · 技术社区  · 16 年前

    对不起,奇怪的描述。我想要达到的目标很简单:

    IEnumerable<IEnumerable<Foo>> listoflist;
    IEnumerable<Foo> combined = listoflist.CombineStuff();
    

    例子:

    {{0, 1}, {2, 3}} => {0, 1, 2, 3}
    

    我肯定有一个Linq表达式…

    旁注:列表可能很大。

    2 回复  |  直到 16 年前
        1
  •  14
  •   Jon Skeet    16 年前

    就像勒皮说的,你想要 Enumerable.SelectMany . 最简单的形式是:

     combined = listOfList.SelectMany(x => x);
    

    在查询表达式中, SelectMany 当您有多个 from 条款,所以另一种选择是:

     combined = from x in listOfList
                from y in x
                select y;
    
        2
  •  2
  •   leppie    16 年前

    选择()

    好啊