Подтвердить что ты не робот

Как фильтровать список на основе другого списка с помощью Linq?

У меня есть эти два списка, один из списка объектов Место > , один из них содержит список объектов 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, а listOfBlockedVenues имеет поле VenueID int, мне нужно использовать эти два

Большое спасибо

4b9b3361

Ответ 1

Попробуйте следующее:

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

Он получит все объекты, где Id не в списке заблокированныхVenues