c# – Linq:有没有办法搜索符合条件的值的对象列表列表?
发布时间:2020-12-16 00:06:52 所属栏目:百科 来源:网络整理
导读:我有3种类型的对象,TypeA,TypeB,TypeC. TypeA有一个TypeB列表,TypeB有一个TypeC列表,而TypeC有一些我想跟踪的变量 Class TypeA{ ListTypeB MyListOfTypeB; //...}Class TypeB{ ListTypeC MyListOfTypeC; //...}Class TypeC{ int SomeInteger; //...} 给定列
我有3种类型的对象,TypeA,TypeB,TypeC. TypeA有一个TypeB列表,TypeB有一个TypeC列表,而TypeC有一些我想跟踪的变量
Class TypeA { List<TypeB> MyListOfTypeB; //... } Class TypeB { List<TypeC> MyListOfTypeC; //... } Class TypeC { int SomeInteger; //... } 给定列表< TypeA> MyListOfTypeA,我想寻找满足特定条件的所有TypeC对象,例如,SomeInteger> 100.除了为/ foreach循环嵌套之外,Linq的方法是什么? 解决方法var MyListOfTypeA = new List<TypeA>(); // ... var cItems = from a in MyListOfTypeA from b in a.MyListOfTypeB from c in a.MyListOfTypeC where c.SomeInteger > 100 select c; 以上相当于调用SelectMany LINQ函数,但在我看来它更清晰,更容易阅读. 使用LINQ函数(正如Dmitry已经建议的那样,但有一些修改): var cItems = MyListOfTypeA.SelectMany( a => a.MyListOfTypeB ) .SelectMany( b => b.MyListOfTypeC ) .Where( c => c.SomeValue > 200 ); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |