web-dev-qa-db-ja.com

Linqを使用して別のリストに基づいてリストをフィルタリングする方法は?

これら2つのリストがあります。1つはVenueオブジェクトのリスト、もう1つは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フィールドがあるため、これら2つを使用する必要があります

どうもありがとう

これを試して:

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

IdがblockedVenuesリストにないすべての会場を取得します

50