从列表中选择未出现在第二个列表中的列表

时间:2016-12-09 21:36:15

标签: c# linq

我有一个很难解释的奇怪问题:

我有2个列表,其中一个包含对象:Car( id ,make,model)和第二个包含“Reservations”的列表(id,datefrom,dateto, carid )。现在我需要linq选择第一个列表中的所有项目,这些项目不会出现在第二个列表中。

我不知道如何linq到另一个列表的特定对象:

var emptyCars = cars.Where(c => c.id != /*element of reservationlist.carid*/)

2 个答案:

答案 0 :(得分:3)

var emptyCars = cars.Where(c => !reservation.Any(y=> y.carID == c.ID));

您可以使用Enumerable.Any

  

确定序列的任何元素是否满足条件。

答案 1 :(得分:1)

尝试重新排列你的linq声明:

var emptyCars = cars.Where(c => !reservation.Any(r => r.carid == c.id));