2011-09-20 15 views
7

私はクラスAのリストを持っています。クラスAにはクラスBのリストが含まれています。 Aクラスのすべてのインスタンス内のBのすべてのインスタンスに対して操作したいと考えています。私はすべてのBすなわちforeach(var b in myListOfA.ListOfB){}を反復処理するにはどうすればよいLinq - リストのリストで操作する

var myListOfA = new List<A>(); 

class A 
{ 
    public List<B> ListOfB; 
} 

答えて

9

あなたはSelectManyを使用することができます。

foreach(var b in myListOfA.SelectMany(a => a.ListofB)) 

ideone.comでアクションでそれを参照してください。私は、ネストされたオブジェクトをどのように考えるかに適しています

+1

ああ、私は働いていない(選択されている)を試していました。ありがとう。 – Chris

2

別の方法は次のとおりです。

(from A objA in myListOfA 
    from B objB in objA.ListOfB 
     select objB); 

この意志「ファンアウト」メインリスト内のすべての内のBさんのリスト。

+0

これは「SelectMany」の構文的な砂糖ですが、私は同意します。 – Jens

+0

これは間違いなくselectmanyを使用する別の方法です –