用LINQ比较两个对象列表的特定属性
本文关键字:列表 对象 属性 两个 比较 LINQ | 更新日期: 2023-09-27 18:06:30
我有这两个列表(其中值在SelectListItem是一个bookingid):
List<SelectListItem> selectedbookings;
List<Booking> availableBookings;
我需要找到selectedBookings
中不属于availableBookings
的id。下面的LINQ连接只会让我在availableBookings
中的预订id,我不确定如何以另一种方式做到这一点。
!=
将不工作,因为我比较字符串。
results = (
from s in selectedbookings
join a in availableBookings on s.bookingID.ToString() equals a.Value
select s);
我需要从selectedbooking中找到不在availablebooking中的id。
这很简单——它是选中预订中的所有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);