2012-03-26 16 views
1

私は片面にオブジェクトDictionary<int, Dictionary<int, Foo> >を、反対側にはIEnumerable<IEnumerable<Foo> >をとっている機能を持っています。Linqのディクショナリ<int、Dictionary <int, Foo>>をIEnumerable <IEnumerable <Foo>>に変換する最も簡単な方法は?

のLINQで一方から他方へと変換するための最も単純な方法は何ですか、私は素敵な何かを考えることはできません、すべての私の試みは、foreachループで終わった...

答えて

4

これはそれを行う必要があります。

return dictionary.Values.Select(nested => nested.Values); 
+1

それはコンパイルされませんに... –

+0

@KirillPolishchukは、あなたが 'System.Linqのを使用していることを確認してください;'ファイル – GolfWolf

+1

@KirillPolishchukの先頭に:おかげで、固定 - それは今よりずっと簡単です:) –

1

用途:

var result = dict.Select(d => d.Value.Select(i => i.Value)); 
2

結果

var list = dict.Values.Select(kv => kv.Values); 
から

は、タイプIEnumerable<IEnumerable<Foo> >のパラメータに割り当て可能です。

1

このような何か:

var result= (
     from d in dic 
     select 
      (
       from values in d.Value 
       select values.Value 
      ) 
    ); 
関連する問題