Queryable.Except Methode

Definitie

Produceert het setverschil van twee reeksen.

Overloads

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

Produceert het setverschil van twee reeksen door de opgegeven IEqualityComparer<T> waarden te vergelijken.

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

Produceert het setverschil van twee reeksen met behulp van de standaard gelijkheidsgelijker om waarden te vergelijken.

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

Produceert het setverschil van twee reeksen door de opgegeven IEqualityComparer<T> waarden te vergelijken.

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);
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)

Type parameters

TSource

Het type van de elementen van de invoerreeksen.

Parameters

source1
IQueryable<TSource>

Een IQueryable<T> waarvan de elementen die niet ook aanwezig source2 zijn, worden geretourneerd.

source2
IEnumerable<TSource>

Een IEnumerable<T> wiens elementen ook in de eerste reeks voorkomen, worden niet weergegeven in de geretourneerde reeks.

comparer
IEqualityComparer<TSource>

Een IEqualityComparer<T> om waarden te vergelijken.

Retouren

IQueryable<TSource>

Een IQueryable<T> die het setverschil van de twee reeksen bevat.

Uitzonderingen

source1 of source2 is null.

Opmerkingen

De Except<TSource>(IQueryable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>) methode genereert een MethodCallExpression die zichzelf aanroept Except<TSource>(IQueryable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>) als een samengestelde algemene methode. Vervolgens wordt de MethodCallExpression methode doorgegeven aan de CreateQuery<TElement>(Expression) methode van de IQueryProvider vertegenwoordigd door de Provider eigenschap van desource1 parameter.

Het querygedrag dat optreedt als gevolg van het uitvoeren van een expressiestructuur die aanroept Except<TSource>(IQueryable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>) , is afhankelijk van de implementatie van het type source1 parameter. Het verwachte gedrag is dat alle elementen in source1 worden geretourneerd, met uitzondering van de elementen die zich ook in source2bevinden en comparer worden gebruikt om waarden te vergelijken.

Van toepassing op

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

Produceert het setverschil van twee reeksen met behulp van de standaard gelijkheidsgelijker om waarden te vergelijken.

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)

Type parameters

TSource

Het type van de elementen van de invoerreeksen.

Parameters

source1
IQueryable<TSource>

Een IQueryable<T> waarvan de elementen die niet ook aanwezig source2 zijn, worden geretourneerd.

source2
IEnumerable<TSource>

Een IEnumerable<T> wiens elementen ook in de eerste reeks voorkomen, worden niet weergegeven in de geretourneerde reeks.

Retouren

IQueryable<TSource>

Een IQueryable<T> die het setverschil van de twee reeksen bevat.

Uitzonderingen

source1 of source2 is null.

Voorbeelden

In het volgende codevoorbeeld ziet u hoe Except<TSource>(IQueryable<TSource>, IEnumerable<TSource>) u deze elementen kunt retourneren die alleen in de eerste bronreeks worden weergegeven.

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

Opmerkingen

De Except<TSource>(IQueryable<TSource>, IEnumerable<TSource>) methode genereert een MethodCallExpression die zichzelf aanroept Except<TSource>(IQueryable<TSource>, IEnumerable<TSource>) als een samengestelde algemene methode. Vervolgens wordt de MethodCallExpression methode doorgegeven aan de CreateQuery<TElement>(Expression) methode van de IQueryProvider vertegenwoordigd door de Provider eigenschap van desource1 parameter.

Het querygedrag dat optreedt als gevolg van het uitvoeren van een expressiestructuur die aanroept Except<TSource>(IQueryable<TSource>, IEnumerable<TSource>) , is afhankelijk van de implementatie van het type source1 parameter. Het verwachte gedrag is dat alle elementen worden source1 geretourneerd, met uitzondering van de elementen die zich ook in source2bevinden.

Van toepassing op