小编典典

您将如何使用 LINQ 进行“不在”查询?

all

我有两个集合Email在两个集合中都有属性。我需要获取Email第二个列表中不存在的第一个列表中的项目列表。对于 SQL,我只会使用“not
in”,但我不知道 LINQ 中的等价物。这是怎么做的?

到目前为止,我有一个加入,比如......

var matches = from item1 in list1
join item2 in list2 on item1.Email equals item2.Email
select new { Email = list1.Email };

但是我不能加入,因为我需要差异并且加入会失败。我相信我需要某种使用包含或存在的方法。我只是还没有找到一个例子来做到这一点。


阅读 72

收藏
2022-04-07

共1个答案

小编典典

我不知道这是否会帮助你但是..

NorthwindDataContext dc = new NorthwindDataContext();    
dc.Log = Console.Out;

var query =    
    from c in dc.Customers    
    where !(from o in dc.Orders    
            select o.CustomerID)    
           .Contains(c.CustomerID)    
    select c;

foreach (var c in query) Console.WriteLine( c );
2022-04-07