for WPF developers
Home Profile Tips 全記事一覧

Intersect 拡張メソッドで積集合を取得する

(2017/03/08 18:06:02 created.)

(2017/03/13 8:35:50 modified.)

Intersect 拡張メソッドを使うと 2 つのシーケンスに共通する要素を抽出できます。

Program.cs
  1. namespace Tips_Linq
  2. {
  3.     using System;
  4.     using System.Linq;
  5.  
  6.     class Program
  7.     {
  8.         static void Main(string[] args)
  9.         {
  10.             var numbers1 = new int[] { 1, 2, 3, 4, 5 };
  11.             var numbers2 = new int[] {     2,    4    };
  12.  
  13.             var numbers = numbers1.Intersect(numbers2);
  14.             Console.WriteLine("コレクションの要素は {{ {0} }} です。", string.Join(", ", numbers));
  15.  
  16.             Console.ReadKey();
  17.         }
  18.     }
  19. }


Intersect 拡張メソッドの第 2 引数として等値比較演算子を指定することができます。カスタムクラスのシーケンスでインスタンスではなくプロパティ値で一致しているかどうかを判定したい場合に使います。詳細は「Distinct 拡張メソッドで重複する要素をシーケンスから除外する」を参照してください。