簡體   English   中英

Linq-獲取具有列表屬性的對象,該屬性在另一個列表中不包含值

[英]Linq - get objects with a list property that does not contain values in another list

我覺得自己完全無法解決這個問題。

我有一個稱為ExistingBookings的“ Booking”對象列表。 我也有一個“計數”對象的ObservableCollection,每個對象都有一個“ Bookings”屬性,該屬性是“ Booking”對象的列表。

使用Linq,如何選擇其“ Bookings”屬性中不包含ExistingBookings中任何“ Booking”對象的所有Count對象?

List<Booking> ExistingBookings = new List<Booking>();
ExistingBookings.Add(Booking1);
ExistingBookings.Add(Booking2);

Count1 = new Count();
Count1.Bookings.Add(Booking2);
Count1.Bookings.Add(Booking3);

Count2 = new Count();
Count1.Bookings.Add(Booking3);
Count1.Bookings.Add(Booking4);

List<Count> counts = new List<Count>();
counts.Add(Count1);
counts.Add(Count2);

我期望輸出是僅包含Count2的Count對象的列表,因為ExistingBookings中都不存在其Booking對象。

請讓我擺脫苦難:(

假設您的Booking類正確實現了相等和哈希碼,則可以使用:

var result = counts.Where(c => !c.Bookings.Intersect(ExistingBookings).Any());
counts.Where(c => c.Bookings.All(b => !ExistingBookings.Contains(b)));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM