我有一个很难解释的奇怪问题:
我有2个列表,其中一个包含对象:Car( id ,make,model)和第二个包含“Reservations”的列表(id,datefrom,dateto, carid )。现在我需要linq选择第一个列表中的所有项目,这些项目不会出现在第二个列表中。
我不知道如何linq到另一个列表的特定对象:
var emptyCars = cars.Where(c => c.id != /*element of reservationlist.carid*/)
答案 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));