现在举例来说,我有两个列表如下:
List<ABC> testingList_1 = new List<ABC>;
List<ABC> testingList_2 = new List<ABC>;
ABC
包含List<ZZZ>, ABC_ID
类型
List<ZZZ>
包含List<YYY>, ZZZ_ID
类型
List<YYY>
包含YYY_ID, Name
现在,我正在尝试比较Name
中YYY
testingList_1
与Name
中YYY
testingList_2
之间的{{1}}。我可以知道如何构建这样的lambda吗?
答案 0 :(得分:0)
嗯,这取决于你正在做什么样的比较。例如,如果你想看看是否有任何&#34; YYY&#34; testingList1中的名称位于testingList2中,您将使用SelectMany
条件Any
:
return testingList1.SelectMany(x => x.zList).Any(y => testingList2.SelectMany(z => z.Zlist).Contains(y.Name));
其他比较也类似,它们都利用了SelectMany
功能,它允许您应用一个返回IEnumerable
且有效&#34;展平&#34;的选择器。或将所有结果合并为一个大的IEnumerable
。
SelectMany的文档:MSDN
如果我能说清楚的话,请告诉我!