Queryable.Except Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
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
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
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.