Queryable.Except 메서드

정의

두 시퀀스의 차집합을 구합니다.

오버로드

Except<TSource>(IQueryable<TSource>, IEnumerable<TSource>)

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

Except<TSource>(IQueryable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>)

지정된 IEqualityComparer<T>로 값을 비교하여 두 시퀀스의 차집합을 구합니다.

Except<TSource>(IQueryable<TSource>, IEnumerable<TSource>)

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

public:
generic <typename TSource>
[System::Runtime::CompilerServices::Extension]
 static System::Linq::IQueryable<TSource> ^ Except(System::Linq::IQueryable<TSource> ^ source1, System::Collections::Generic::IEnumerable<TSource> ^ source2);
public static System.Linq.IQueryable<TSource> Except<TSource> (this System.Linq.IQueryable<TSource> source1, System.Collections.Generic.IEnumerable<TSource> source2);
static member Except : System.Linq.IQueryable<'Source> * seq<'Source> -> System.Linq.IQueryable<'Source>
<Extension()>
Public Function Except(Of TSource) (source1 As IQueryable(Of TSource), source2 As IEnumerable(Of TSource)) As IQueryable(Of TSource)

형식 매개 변수

TSource

입력 시퀀스 요소의 형식입니다.

매개 변수

source1
IQueryable<TSource>

source2에 없는 해당 요소를 반환할 IQueryable<T>입니다.

source2
IEnumerable<TSource>

첫 번째 시퀀스에 해당 요소가 있는 경우 반환되는 시퀀스에서 해당 요소를 제외할 IEnumerable<T>입니다.

반환

IQueryable<TSource>

두 시퀀스의 차집합이 들어 있는 IQueryable<T>입니다.

예외

source1 또는 source2null인 경우

예제

다음 코드 예제에서는 첫 번째 소스 시퀀스에만 나타나는 요소를 반환하는 데 사용하는 Except<TSource>(IQueryable<TSource>, IEnumerable<TSource>) 방법을 보여 줍니다.

double[] numbers1 = { 2.0, 2.1, 2.2, 2.3, 2.4, 2.5 };
double[] numbers2 = { 2.2 };

// Get the numbers from the first array that
// are NOT in the second array.
IEnumerable<double> onlyInFirstSet =
    numbers1.AsQueryable().Except(numbers2);

foreach (double number in onlyInFirstSet)
    Console.WriteLine(number);

/*
    This code produces the following output:

    2
    2.1
    2.3
    2.4
    2.5
*/
Dim numbers1() As Double = {2.0, 2.1, 2.2, 2.3, 2.4, 2.5}
Dim numbers2() As Double = {2.2}

' Get the numbers from the first array that
' are NOT in the second array.
Dim onlyInFirstSet As IEnumerable(Of Double) = _
    numbers1.AsQueryable().Except(numbers2)

Dim output As New System.Text.StringBuilder
For Each number As Double In onlyInFirstSet
    output.AppendLine(number)
Next

' Display the output.
MsgBox(output.ToString())

' This code produces the following output:
'
' 2
' 2.1
' 2.3
' 2.4
' 2.5

설명

메서드는 Except<TSource>(IQueryable<TSource>, IEnumerable<TSource>) 생성된 제네릭 메서드로 자신을 호출 Except<TSource>(IQueryable<TSource>, IEnumerable<TSource>) 하는 것을 나타내는 메서드를 생성 MethodCallExpression 합니다. 그런 다음 매개 변수의 IQueryProvider CreateQuery<TElement>(Expression) 속성으로 표현되는 메서드에 Provider 전달 MethodCallExpression 합니다source1.

호출 Except<TSource>(IQueryable<TSource>, IEnumerable<TSource>) 을 나타내는 식 트리를 실행한 결과로 발생하는 쿼리 동작은 매개 변수 형식 source1 의 구현에 따라 달라집니다. 예상되는 동작은 에 있는 source1 요소를 제외한 모든 요소가 반환된다는 것입니다 source2.

적용 대상

Except<TSource>(IQueryable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>)

지정된 IEqualityComparer<T>로 값을 비교하여 두 시퀀스의 차집합을 구합니다.

public:
generic <typename TSource>
[System::Runtime::CompilerServices::Extension]
 static System::Linq::IQueryable<TSource> ^ Except(System::Linq::IQueryable<TSource> ^ source1, System::Collections::Generic::IEnumerable<TSource> ^ source2, System::Collections::Generic::IEqualityComparer<TSource> ^ comparer);
public static System.Linq.IQueryable<TSource> Except<TSource> (this System.Linq.IQueryable<TSource> source1, System.Collections.Generic.IEnumerable<TSource> source2, System.Collections.Generic.IEqualityComparer<TSource> comparer);
public static System.Linq.IQueryable<TSource> Except<TSource> (this System.Linq.IQueryable<TSource> source1, System.Collections.Generic.IEnumerable<TSource> source2, System.Collections.Generic.IEqualityComparer<TSource>? comparer);
static member Except : System.Linq.IQueryable<'Source> * seq<'Source> * System.Collections.Generic.IEqualityComparer<'Source> -> System.Linq.IQueryable<'Source>
<Extension()>
Public Function Except(Of TSource) (source1 As IQueryable(Of TSource), source2 As IEnumerable(Of TSource), comparer As IEqualityComparer(Of TSource)) As IQueryable(Of TSource)

형식 매개 변수

TSource

입력 시퀀스 요소의 형식입니다.

매개 변수

source1
IQueryable<TSource>

source2에 없는 해당 요소를 반환할 IQueryable<T>입니다.

source2
IEnumerable<TSource>

첫 번째 시퀀스에 해당 요소가 있는 경우 반환되는 시퀀스에서 해당 요소를 제외할 IEnumerable<T>입니다.

comparer
IEqualityComparer<TSource>

값을 비교할 IEqualityComparer<T>입니다.

반환

IQueryable<TSource>

두 시퀀스의 차집합이 들어 있는 IQueryable<T>입니다.

예외

source1 또는 source2null인 경우

설명

메서드는 Except<TSource>(IQueryable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>) 생성된 제네릭 메서드로 자신을 호출 Except<TSource>(IQueryable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>) 하는 것을 나타내는 메서드를 생성 MethodCallExpression 합니다. 그런 다음 매개 변수의 IQueryProvider CreateQuery<TElement>(Expression) 속성으로 표현되는 메서드에 Provider 전달 MethodCallExpression 합니다source1.

호출 Except<TSource>(IQueryable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>) 을 나타내는 식 트리를 실행한 결과로 발생하는 쿼리 동작은 매개 변수 형식 source1 의 구현에 따라 달라집니다. 예상되는 동작은 또한 있는 source1 요소를 제외하고 source2모든 요소가 반환되고 comparer 값을 비교하는 데 사용된다는 것입니다.

적용 대상