我试图根据该集合对象的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是一个具有这种结构的mongodb。
谢谢,
答案 0 :(得分:10)
var result = master.SelectMany(n => n).Where(n => n.id == 2);
SelecMany
会将分层列表展平为一个大的顺序列表,然后Where
将根据您的情况进行过滤。
答案 1 :(得分:3)
你可以这样做:
var result = master.SelectMany(m => m).Where(mo => mo.id == 2);
答案 2 :(得分:0)
您可以使用:
var result = (from list in master from element in list where element.id == 2 select element);