简体   繁体   English

从列表中选择Lambda或linq

[英]Select from list Lambda or linq

Im trying to select from a collection in linq based on an id on an object of that collection. 我试图根据该集合的对象上的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});

What i want is to, with lambda/linq, is to get all the objects with id=2 from the master. 我想要的是,使用lambda / linq,是从主服务器获取id = 2的所有对象。

The senario im using this in is a mongodb with this structure. 使用它的senario是一个具有这种结构的mongodb。

Thanks, 谢谢,

var result = master.SelectMany(n => n).Where(n => n.id == 2);

SelecMany会将分层列表展平为一个大的顺序列表,然后Where过滤您的条件。

你可以这样做:

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

你可以用这个:

var result = (from list in master from element in list where element.id == 2 select element);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM