和集合 (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