1. ホーム
  2. c#

[解決済み] LINQで「not in」クエリはどうやるの?

2022-02-01 17:19:17

質問

2つのコレクションがあり、それぞれのコレクションには Email を両方のコレクションで使用します。最初のリストで Email が2番目のリストに存在しない。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 };

しかし、差分が必要なので結合できず、結合は失敗します。ContainsかExistsを使う方法が必要だと思います。ただ、それを行うための例がまだ見つかっていません。

解決方法は?

役に立つかどうかわかりませんが...

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 to SQLのNOT IN節 によって マルコ・ルッソ