如何使用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列表中的所有场地