如何使用Linq根据另一个列表过滤列表? [英] How to filter a list based on another list using Linq?

查看:146
本文介绍了如何使用Linq根据另一个列表过滤列表?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有这两个列表,一个是 Venue 对象的列表,一个是 BlockedVenues 对象的列表.

I have these two lists, one a list of Venue Objects, one a list of BlockedVenues objects.

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

I need to filter each item in the listOfAllVenues so that it doesn't contain any venue that is blocked

     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字段,我需要使用这两个

Please note that yes both list types are different, but listOfAllVenues has an int ID field, and listOfBlockedVenues has a VenueID int field, i need to use these two

非常感谢

推荐答案

尝试一下:

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

它将获取ID不在阻止的地点列表中的所有地点

It will get all Venues where Id is not in blockedVenues list

这篇关于如何使用Linq根据另一个列表过滤列表?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆