エクスポート (0) 印刷
すべて展開
情報
要求されたトピックは次のとおりです。しかし、このトピックはこのライブラリには含まれていません。

Enumerable.Intersect<TSource> メソッド (IEnumerable<TSource>, IEnumerable<TSource>)

2013/12/12

既定の等値比較子を使用して値を比較することにより、2 つのシーケンスの積集合を生成します。

Namespace:  System.Linq
アセンブリ:  System.Core (System.Core.dll 内)

public static IEnumerable<TSource> Intersect<TSource>(
	this IEnumerable<TSource> first,
	IEnumerable<TSource> second
)

型パラメーター

TSource

入力シーケンスの要素の型。

パラメーター

first
型: System.Collections.Generic.IEnumerable<TSource>
second にも含まれる、返される一意の要素を含む IEnumerable<T>
second
型: System.Collections.Generic.IEnumerable<TSource>
最初のシーケンスにも含まれる、返される一意の要素を含む IEnumerable<T>

戻り値

型: System.Collections.Generic.IEnumerable<TSource>
2 つのシーケンスの積集合を構成する要素が格納されているシーケンス。

使用上の注意

Visual Basic および C# では、このメソッドを、IEnumerable<TSource> 型の任意のオブジェクトのインスタンス メソッドとして呼び出すことができます。インスタンス メソッド構文を使用してこのメソッドを呼び出す場合は、最初のパラメーターを省略します。

例外条件
ArgumentNullException

first または secondnull です。

このメソッドは遅延実行を使用して実装されます。アクションの実行に必要なすべての情報を格納するオブジェクトがすぐに返されます。このメソッドで表されるクエリは、オブジェクトの GetEnumerator メソッドを直接呼び出すか、または Visual C# の foreach または Visual Basic の For Each を使用してオブジェクトが列挙されるまで、実行されません。

2 つの集合 A と B の積集合は、A のすべての要素を含み、B にも要素が含まれる集合として定義されます。その他の要素は含まれません。

このメソッドによって返されるオブジェクトが列挙されると、Intersectfirst を列挙し、そのシーケンスの一意の要素をすべて収集します。次に、second を列挙し、両方のシーケンスに含まれる要素をマークします。最後に、マークされた要素が、収集された順序で返されます。

既定の等値比較子 Default は、IEqualityComparer<T> ジェネリック インターフェイスを実装している型の値を比較するために使用されます。カスタム データ型を比較するには、このインターフェイスを実装し、その型の GetHashCode メソッドと Equals メソッドを独自に用意する必要があります。

Intersect<TSource>(IEnumerable<TSource>, IEnumerable<TSource>) を使用して、2 つの整数の各シーケンスに含まれる要素を返す方法を次のコード例に示します。


      int[] id1 = { 44, 26, 92, 30, 71, 38 };
      int[] id2 = { 39, 59, 83, 47, 26, 4, 30 };

      IEnumerable<int> both = id1.Intersect(id2);

      foreach (int id in both)
         outputBlock.Text += id + "\n";

      /*
       This code produces the following output:

       26
       30
      */



カスタム データ型のオブジェクトのシーケンスを比較する場合は、IEqualityComparer<T> ジェネリック インターフェイスをクラスで実装する必要があります。

Windows Phone OS

サポート: 8.0, 7.1, 7.0

表示:
© 2014 Microsoft