46

我有这两个列表,一个是场地对象列表,一个是BlockedVenues对象列表。

我需要过滤listOfAllVenues中的每个项目,使其不包含任何被阻止的场所

     IQueryable<Venue> listOfAllVenues = MyDB.Venues;
     IQueryable<BlockedVenue> 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 字段,我需要使用这两个

非常感谢

4

1 回答 1

97

试试这个:

var filtered = listOfAllVenues
                   .Where(x=>!listOfBlockedVenues.Any(y=>y.VenueId == x.Id));

它将获取 ID 不在blockedVenues 列表中的所有Venues

于 2013-09-24T09:36:45.900 回答