Queryable.Except Metoda

Definice

Vytvoří množinový rozdíl dvou sekvencí.Produces the set difference of two sequences.

Přetížení

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

Vytvoří množinový rozdíl dvou sekvencí pomocí zadaného IEqualityComparer<T> pro porovnání hodnot.Produces the set difference of two sequences by using the specified IEqualityComparer<T> to compare values.

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

Vytvoří množinový rozdíl dvou sekvencí pomocí výchozí porovnávací metody pro porovnání hodnot.Produces the set difference of two sequences by using the default equality comparer to compare values.

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

Vytvoří množinový rozdíl dvou sekvencí pomocí zadaného IEqualityComparer<T> pro porovnání hodnot.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 prvků vstupních sekvencí.The type of the elements of the input sequences.

Parametry

source1
IQueryable<TSource>

IQueryable<T>Jejichž prvky, které nejsou také v, source2 budou vráceny.An IQueryable<T> whose elements that are not also in source2 will be returned.

source2
IEnumerable<TSource>

IEnumerable<T>, Jejíž prvky, které se také vyskytují v první sekvenci, se nezobrazí ve vrácené sekvenci.An IEnumerable<T> whose elements that also occur in the first sequence will not appear in the returned sequence.

comparer
IEqualityComparer<TSource>

IEqualityComparer<T>Pro porovnání hodnot.An IEqualityComparer<T> to compare values.

Návraty

IQueryable<TSource>

IQueryable<T>, Který obsahuje množinu rozdílů dvou sekvencí.An IQueryable<T> that contains the set difference of the two sequences.

Výjimky

source1 nebo source2 je null .source1 or source2 is null.

Poznámky

Except<TSource>(IQueryable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>)Metoda generuje MethodCallExpression , který reprezentuje volání Except<TSource>(IQueryable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>) sebe sama jako vytvořenou obecnou metodu.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. Poté předá MethodCallExpression CreateQuery<TElement>(Expression) metodě IQueryProvider reprezentované Provider vlastností source1 parametru.It then passes the MethodCallExpression to the CreateQuery<TElement>(Expression) method of the IQueryProvider represented by the Provider property of thesource1 parameter.

Chování dotazu, k němuž dojde v důsledku provádění stromu výrazu, který představuje volání, Except<TSource>(IQueryable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>) závisí na implementaci 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. Očekávané chování je, že všechny prvky v source1 jsou vráceny kromě těch, které jsou také v a source2 comparer slouží k porovnání hodnot.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.

Platí pro

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

Vytvoří množinový rozdíl dvou sekvencí pomocí výchozí porovnávací metody pro porovnání hodnot.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 prvků vstupních sekvencí.The type of the elements of the input sequences.

Parametry

source1
IQueryable<TSource>

IQueryable<T>Jejichž prvky, které nejsou také v, source2 budou vráceny.An IQueryable<T> whose elements that are not also in source2 will be returned.

source2
IEnumerable<TSource>

IEnumerable<T>, Jejíž prvky, které se také vyskytují v první sekvenci, se nezobrazí ve vrácené sekvenci.An IEnumerable<T> whose elements that also occur in the first sequence will not appear in the returned sequence.

Návraty

IQueryable<TSource>

IQueryable<T>, Který obsahuje množinu rozdílů dvou sekvencí.An IQueryable<T> that contains the set difference of the two sequences.

Výjimky

source1 nebo source2 je null .source1 or source2 is null.

Příklady

Následující příklad kódu ukazuje, jak použít Except<TSource>(IQueryable<TSource>, IEnumerable<TSource>) k vrácení těchto prvků, které se zobrazí pouze v první zdrojové sekvenci.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

Poznámky

Except<TSource>(IQueryable<TSource>, IEnumerable<TSource>)Metoda generuje MethodCallExpression , který reprezentuje volání Except<TSource>(IQueryable<TSource>, IEnumerable<TSource>) sebe sama jako vytvořenou obecnou metodu.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. Poté předá MethodCallExpression CreateQuery<TElement>(Expression) metodě IQueryProvider reprezentované Provider vlastností source1 parametru.It then passes the MethodCallExpression to the CreateQuery<TElement>(Expression) method of the IQueryProvider represented by the Provider property of thesource1 parameter.

Chování dotazu, k němuž dojde v důsledku provádění stromu výrazu, který představuje volání, Except<TSource>(IQueryable<TSource>, IEnumerable<TSource>) závisí na implementaci 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. Očekávané chování je, že všechny prvky v source1 jsou vráceny s výjimkou těch, které jsou také v source2 .The expected behavior is that all the elements in source1 are returned except for those that are also in source2.

Platí pro