IEnumerable< IEnumerable< Foo>>を減らすにはどうすればよいですか? IEnumerable< Foo>へ?

StackOverflow https://stackoverflow.com/questions/1600310

  •  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);

クエリ式では、複数の from 句がある場合に SelectMany が呼び出されるため、代替手段は次のようになります。

 combined = from x in listOfList
            from y in x
            select y;

他のヒント

  

SelectMany()

OK

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top