C#

【C#】LINQの集合演算まとめ

和集合 (Union / Concat)

Union / Concat メソッドは二つのコレクションの要素を足して返します。

Union と Concat の違い

Unionメソッドは重複を削除します。
Concatメソッドは逆に重複を許可します。

つまり、UnionメソッドはSQLのUNIONで、ConcatはSQLのUNION ALLと同じ挙動です。

var nums1 = new int[] { 1, 2, 3, 4, 5 };
var nums2 = new int[] { 4, 5, 6, 7, 8 };

var union = nums1.Union(nums2);
foreach (var item in union)
{
    Console.WriteLine(item);
}
//1
//2
//3
//4
//5
//6
//7
//8

var concat = nums1.Concat(nums2);
foreach (var item in concat)
{
    Console.WriteLine(item);
}
//1
//2
//3
//4
//5
//4
//5
//6
//7
//8

積集合(Intersect)

Intersectメソッドは二つのコレクションの重複する要素を返します。

SQLのINTERSECTと同じ挙動です。

var nums1 = new int[] { 1, 2, 3, 4, 5 };
var nums2 = new int[] { 4, 5, 6, 7, 8 };

var intersect = nums1.Intersect(nums2);
foreach (var item in intersect)
{
    Console.WriteLine(item);
}
//4
//5

差集合(Except)

Exceptメソッドは一つのコレクション要素から、もう一方のコレクションの要素を除いたものを返します。

SQLのEXCEPTと同じ挙動です。

var nums1 = new int[] { 1, 2, 3, 4, 5 };
var nums2 = new int[] { 4, 5, 6, 7, 8 };

var except = nums1.Except(nums2);
foreach (var item in except)
{
    Console.WriteLine(item);
}
//1
//2
//3
エンジニアの転職ならこれ!

【第二新卒向け】マイナビジョブ20's

マイナビジョブ20'sは、20代・第二新卒・既卒向けの転職エージェントです。

▼こんな方におすすめ
・はじめて転職しようと思っている
・転職できるだけのスキルが自分にあるか不安
・手厚いサポートを受けたい

【フリーランス向け】安心保障と豊富な案件紹介 Midworks

Midworksは豊富な案件と「フリーランス」と「正社員」の良いとこ取りをした働き方を実現する手厚い保障が特徴です。

▼こんな方におすすめ
・現在正社員でフリーランスになろうか悩んでいる
・フリーランスとして働いているが、先行きが不安がある  (安定的な案件確保や保障など)
・自分の市場価値を知りたい、見合った案件で参画したい
・今後のキャリアビジョンを踏まえて案件を選びたい

【未経験向け】自宅で現役エンジニアから学べる TechAcademy

テックアカデミーは、現役エンジニアから学べるオンラインに特化したプログラミングスクールです。
講師は全員、通過率10%の選考に合格した現役エンジニア。
確かなスキルをもとに受講生をマンツーマンサポートします。


▼こんな方におすすめ
・自宅にいながらオンライン完結で勉強できる
・受講生に1人ずつ現役エンジニアのパーソナルメンターが専属でつく
・チャットで質問すればすぐに回答が返ってくる
・オリジナルサービスやオリジナルアプリなどの開発までサポート