Linq检查是否存在来自其他列表的所有值

时间:2016-05-03 05:48:37

标签: c# linq list

我有以下值列表

清单1

--
Id Country market

1   AU       2

2   NZ       2

3   GB       3

4   GG       3

我有另一个列表,如下所示

清单2

location country

2         AU

2         NZ

3         GB

3         IR

我想从列表2中拉出国家在列表1和市场中满足的位置。这意味着我需要拉动" 2"作为市场= 2的列表2的位置,因为位置2满足值(AU和NZ),而位置3未通过验证,因为并非所有国家(来自列表1)都在列表2中。

我想知道我们是否可以在LINQ语句中编写它。我可以使用循环来查找每个匹配条件,但我想在LINQ中编写更简单,更好的方法。

1 个答案:

答案 0 :(得分:2)

如果您只想知道List1中存在所有List2条目,那么您可以这样做。

bool allexist = list1.All(l=> list2.Any(x=> x.location == l.market && x.Country == l.Country));

或者,如果您想知道List1中存在所有List2条目,那么

var existsinBoth = list1.Where(l=> list2.Any(x=> x.location == l.market && x.Country == l.Country));