Queryable.Except Metoda

Definicja

Tworzy różnicę dwóch sekwencji.Produces the set difference of two sequences.

Przeciążenia

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

Tworzy różnicę dwóch sekwencji przy użyciu określonej IEqualityComparer<T> do porównania wartości.Produces the set difference of two sequences by using the specified IEqualityComparer<T> to compare values.

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

Tworzy różnicę dwóch sekwencji przy użyciu domyślnej funkcji porównującej równość do porównywania wartości.Produces the set difference of two sequences by using the default equality comparer to compare values.

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

Tworzy różnicę dwóch sekwencji przy użyciu określonej IEqualityComparer<T> do porównania wartości.Produces the set difference of two sequences by using the specified IEqualityComparer<T> to compare values.

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)

Parametry typu

TSource

Typ elementów sekwencji wejściowych.The type of the elements of the input sequences.

Parametry

source1
IQueryable<TSource>

IQueryable<T>, Których elementy, które nie są również w programie, source2 zostaną zwrócone.An IQueryable<T> whose elements that are not also in source2 will be returned.

source2
IEnumerable<TSource>

IEnumerable<T>Elementy, których również występują w pierwszej sekwencji, nie pojawią się w zwracanej sekwencji.An IEnumerable<T> whose elements that also occur in the first sequence will not appear in the returned sequence.

comparer
IEqualityComparer<TSource>

IEqualityComparer<T>Do porównywania wartości.An IEqualityComparer<T> to compare values.

Zwraca

IQueryable<TSource>

IQueryable<T>Zawiera zestaw różnic między dwiema sekwencjami.An IQueryable<T> that contains the set difference of the two sequences.

Wyjątki

source1 lub source2 jest null .source1 or source2 is null.

Uwagi

Except<TSource>(IQueryable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>)Metoda generuje element MethodCallExpression reprezentujący wywoływanie Except<TSource>(IQueryable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>) jako metodę rodzajową.The Except<TSource>(IQueryable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>) method generates a MethodCallExpression that represents calling Except<TSource>(IQueryable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>) itself as a constructed generic method. Następnie przekazuje MethodCallExpression do CreateQuery<TElement>(Expression) metody IQueryProvider reprezentowanej przez Provider Właściwość source1 parametru.It then passes the MethodCallExpression to the CreateQuery<TElement>(Expression) method of the IQueryProvider represented by the Provider property of thesource1 parameter.

Zachowanie zapytania, które występuje w wyniku wykonania drzewa wyrażenia, które reprezentuje wywołanie, Except<TSource>(IQueryable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>) zależy od implementacji typu source1 parametru.The query behavior that occurs as a result of executing an expression tree that represents calling Except<TSource>(IQueryable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>) depends on the implementation of the type of the source1 parameter. Oczekiwane zachowanie polega na tym, że wszystkie elementy w source1 są zwracane z wyjątkiem tych, które znajdują się również w source2 , i comparer służą do porównywania wartości.The expected behavior is that all the elements in source1 are returned except for those that are also in source2, and comparer is used to compare values.

Dotyczy

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

Tworzy różnicę dwóch sekwencji przy użyciu domyślnej funkcji porównującej równość do porównywania wartości.Produces the set difference of two sequences by using the default equality comparer to compare values.

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)

Parametry typu

TSource

Typ elementów sekwencji wejściowych.The type of the elements of the input sequences.

Parametry

source1
IQueryable<TSource>

IQueryable<T>, Których elementy, które nie są również w programie, source2 zostaną zwrócone.An IQueryable<T> whose elements that are not also in source2 will be returned.

source2
IEnumerable<TSource>

IEnumerable<T>Elementy, których również występują w pierwszej sekwencji, nie pojawią się w zwracanej sekwencji.An IEnumerable<T> whose elements that also occur in the first sequence will not appear in the returned sequence.

Zwraca

IQueryable<TSource>

IQueryable<T>Zawiera zestaw różnic między dwiema sekwencjami.An IQueryable<T> that contains the set difference of the two sequences.

Wyjątki

source1 lub source2 jest null .source1 or source2 is null.

Przykłady

Poniższy przykład kodu demonstruje, jak użyć, Except<TSource>(IQueryable<TSource>, IEnumerable<TSource>) Aby zwrócić te elementy, które są wyświetlane tylko w pierwszej sekwencji źródłowej.The following code example demonstrates how to use Except<TSource>(IQueryable<TSource>, IEnumerable<TSource>) to return those elements that only appear in the first source sequence.

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

Uwagi

Except<TSource>(IQueryable<TSource>, IEnumerable<TSource>)Metoda generuje element MethodCallExpression reprezentujący wywoływanie Except<TSource>(IQueryable<TSource>, IEnumerable<TSource>) jako metodę rodzajową.The Except<TSource>(IQueryable<TSource>, IEnumerable<TSource>) method generates a MethodCallExpression that represents calling Except<TSource>(IQueryable<TSource>, IEnumerable<TSource>) itself as a constructed generic method. Następnie przekazuje MethodCallExpression do CreateQuery<TElement>(Expression) metody IQueryProvider reprezentowanej przez Provider Właściwość source1 parametru.It then passes the MethodCallExpression to the CreateQuery<TElement>(Expression) method of the IQueryProvider represented by the Provider property of thesource1 parameter.

Zachowanie zapytania, które występuje w wyniku wykonania drzewa wyrażenia, które reprezentuje wywołanie, Except<TSource>(IQueryable<TSource>, IEnumerable<TSource>) zależy od implementacji typu source1 parametru.The query behavior that occurs as a result of executing an expression tree that represents calling Except<TSource>(IQueryable<TSource>, IEnumerable<TSource>) depends on the implementation of the type of the source1 parameter. Oczekiwane zachowanie polega na tym, że wszystkie elementy w source1 są zwracane z wyjątkiem tych, które również znajdują się w source2 .The expected behavior is that all the elements in source1 are returned except for those that are also in source2.

Dotyczy