如何构建lambda来比较两个列表?

时间:2014-03-29 05:13:32

标签: c# list lambda compare

现在举例来说,我有两个列表如下:

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

现在,我正在尝试比较NameYYY testingList_1NameYYY testingList_2之间的{{1}}。我可以知道如何构建这样的lambda吗?

1 个答案:

答案 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

如果我能说清楚的话,请告诉我!