集合演算子
プログラミングC# 第6版 8.3.10
- Intersect演算子
配列同士の共通要素だけを返す
using System; using System.Linq; class Program { static void Main() { int[] nums1 = new int[] {2,4,6,8}; int[] nums2 = new int[] {4,5,8,9}; var ret = nums1.Intersect(nums2); foreach(var n in ret) { Console.WriteLine("{0}",n); } } }
$ main 4 8
- Distinct演算子
配列から重複してる要素を除去します
using System; using System.Linq; class Program { static void Main() { int[] nums = new int[] {2,4,6,8,2,3,5,7,8}; var ret = nums.Distinct(); foreach(var n in ret) { Console.WriteLine("{0}",n); } } }
$ main 2 4 6 8 3 5 7
- Union演算子
配列同士を結合します。ただし重複してる要素は除去されます。
using System; using System.Linq; class Program { static void Main() { int[] nums1 = new int[] {2,4,6,8}; int[] nums2 = new int[] {4,5,8,9}; var ret = nums1.Union(nums2); foreach(var n in ret) { Console.WriteLine("{0}",n); } } }
$ main 2 4 6 8 5 9
処理的にはConcatしてDistinctするのと同じですかね。
- Except演算子
対象の配列から、引数で指定した配列に含まれないものだけを返す
using System; using System.Linq; class Program { static void Main() { int[] nums1 = new int[] {2,4,6,8}; int[] nums2 = new int[] {4,5,8,9}; var ret = nums1.Except(nums2); foreach(var n in ret) { Console.WriteLine("{0}",n); } } }
$ main 2 6