我有以下值列表
清单1
--
Id Country market
1 AU 2
2 NZ 2
3 GB 3
4 GG 3
我有另一个列表,如下所示
location country
2 AU
2 NZ
3 GB
3 IR
我想从列表2中拉出国家在列表1和市场中满足的位置。这意味着我需要拉动" 2"作为市场= 2的列表2的位置,因为位置2满足值(AU和NZ),而位置3未通过验证,因为并非所有国家(来自列表1)都在列表2中。
我想知道我们是否可以在LINQ语句中编写它。我可以使用循环来查找每个匹配条件,但我想在LINQ中编写更简单,更好的方法。
答案 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));