一尘不染

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

c#

我有两个集合,两个集合中都具有属性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 };

但是我无法加入,因为我需要区别,加入会失败。我需要某种相信使用的包含或存在方式。我只是还没有找到执行此操作的示例。


阅读 266

收藏
2020-05-19

共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 );

在LINQ的NOT
IN子句,SQL
马可·鲁索

2020-05-19