MSDN Library
정보
요청한 주제가 아래에 표시됩니다. 그러나 이 주제는 이 라이브러리에 포함되지 않습니다.

Enumerable.Intersect<TSource> 메서드 (IEnumerable<TSource>, IEnumerable<TSource>)

2013-12-13

기본 같음 비교자로 값을 비교하여 두 시퀀스의 교집합을 구합니다.

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>
두 시퀀스 요소의 차집합을 형성하는 요소를 포함하는 시퀀스입니다.

사용 정보

Visual Basic 및 C#에서는 이 메서드를 IEnumerable<TSource> 형식의 모든 개체에서 인스턴스 메서드로 호출할 수 있습니다. 인스턴스 메서드 구문을 사용하여 이 메서드를 호출할 경우에는 첫 번째 매개 변수를 생략합니다.

예외조건
ArgumentNullException

first 또는 secondnull입니다.

이 메서드는 지연된 실행을 사용하여 구현됩니다. 해당 작업을 수행하는 데 필요한 모든 정보가 저장된 개체가 즉시 반환됩니다. 이 메서드에서 나타내는 쿼리는 해당 GetEnumerator 메서드를 직접 호출하거나, foreach(Visual C#에서) 또는 For Each(Visual Basic에서)를 사용하여 개체를 열거할 때까지 실행되지 않습니다.

두 집합 A와 B의 교집합은 A의 요소 중 B에도 나타나는 모든 요소만 포함하는 집합으로 정의됩니다.

이 메서드가 반환하는 개체를 열거하면 Intersect에서 first를 열거하고 해당 시퀀스의 모든 고유 요소를 수집합니다. 그런 다음 second를 열거하고 두 시퀀스에 모두 나타나는 요소를 표시합니다. 마지막으로, 표시된 요소가 수집된 순서대로 제공됩니다.

기본 동등성 비교자인 DefaultIEqualityComparer<T> 제네릭 인터페이스를 구현하는 형식 값을 비교하는 데 사용됩니다. 사용자 지정 데이터 형식을 비교하려면 이 인터페이스를 구축하고 형식에 대한 자체 GetHashCodeEquals 메서드를 제공해야 합니다.

다음 코드 예제에서는 Intersect<TSource>(IEnumerable<TSource>, IEnumerable<TSource>)을 사용하여 두 정수 시퀀스 각각에 있는 요소를 반환하는 방법을 보여 줍니다.


      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

Windows Phone

표시:
© 2016 Microsoft