如何使用Linq基于另一个列表过滤列表?
我有这两个列表,一个是Venue对象列表,一个是BlockedVenues对象列表。
我需要过滤listOfAllVenues中的每个项目,以便它不包含任何被阻止的场所
IQueryable listOfAllVenues = MyDB.Venues; IQueryable listOfBlockedVenues = Mydb.BlockedVenue; //I need something to accomplish this please // var listOfAllVenues_WithoutBlocked_Venues = ( Select All venues from listOfAllVenues where listOfAllVenues.ID is NOT in listOfBlockedVenues.VenueID)
请注意,两个列表类型都不同,但listOfAllVenues有一个int ID字段,而listOfBlockedVenues有一个VenueID int字段,我需要使用这两个
非常感谢
试试这个:
var filtered = listOfAllVenuses .Where(x=>!listOfBlockedVenues.Any(y=>y.VenueId == x.Id));
它将获得Id不在blockedVenues列表中的所有场地