LINQ で「not in」クエリを実行するにはどうすればよいでしょうか? 質問する

LINQ で「not in」クエリを実行するにはどうすればよいでしょうか? 質問する

両方のコレクションにプロパティを持つ 2 つのコレクションがありますEmail。最初のリストにあるが 2 番目のリストには存在しない項目のリストを取得する必要があります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 };

しかし、違いが必要なので結合できません。結合は失敗します。Contains または Exists を使用する何らかの方法が必要だと思います。まだそれを実行する例を見つけていません。

ベストアンサー1

必要なのは、Except 演算子です。

var answer = list1.Except(list2);

より良い説明はこちら:https://learn.microsoft.com/archive/blogs/charlie/linq-farm-more-on-set-operators

注:この手法はプリミティブ型にのみ最適です。IEqualityComparerExcept複合型でメソッドを使用する。

おすすめ記事