2011-11-09 23 views
10

私はそのコレクションのオブジェクト上のIDに基づいてlinqのコレクションから選択しようとしています。リストから選択してください

List<List<myobject>> master = new List<List<myobject>>(); 
List<myobject> m1 = new List<myobject>(); 
List<myobject> m2 = new List<myobject>(); 


master.Add(m1); 
master.Add(m2); 
m1.Add(new myobject{name="n1",id=1}); 
m1.Add(new myobject{name="n2",id=2}); 
m1.Add(new myobject{name="n3",id=3}); 

m2.Add(new myobject{name="m1",id=1}); 
m2.Add(new myobject{name="m2",id=2}); 
m2.Add(new myobject{name="m3",id=3}); 

私が望むのは、lambda/linqで、id = 2のすべてのオブジェクトをマスターから取得することです。

これを使用するsenario imは、この構造のmongodbです。

おかげで、

答えて

10

SelecManyは一つの大きな順次リストに階層リストを平らにします、次にWhereがあなたの状態をフィルタリングします。

2

あなたはこのようにそれを行うことができます。

var result = master.SelectMany(m => m).Where(mo => mo.id == 2); 
0

あなたは、この使用することができます:

var result = (from list in master from element in list where element.id == 2 select element); 
関連する問題