我有这两个列表(其中 SelectListItem 中的 Value 是预定的):
List<SelectListItem> selectedbookings;
List<Booking> availableBookings;
我需要找到selectedBookings
中不属于availableBookings
的ID。下面的LINQ加入只会让我获得availableBookings
中的预订,我不知道如何以相反的方式进行。
!=
因为我正在比较字符串而无效。
results = (
from s in selectedbookings
join a in availableBookings on s.bookingID.ToString() equals a.Value
select s);
答案 0 :(得分:5)
我需要在selectedBookings中找到不在availableBookings中的ID。
这很简单 - 这是所选预订中的所有ID,除了可用预订中的那些:
var ids = selectedBookings.Select(x => x.bookingID.ToString())
.Except(availableBookings.Select(x => x.Value));
或许更可读:
var selectedIds = selectedBookings.Select(x => x.bookingID.ToString());
var availableIds = availableBookings.Select(x => x.Value);
var result = selectedIds.Except(availableIds);