Queryable.Except Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Vytvoří rozdíl množiny dvou sekvencí.
Přetížení
Except<TSource>(IQueryable<TSource>, IEnumerable<TSource>) |
Vytvoří rozdíl sady dvou sekvencí pomocí výchozího porovnávače rovnosti pro porovnání hodnot. |
Except<TSource>(IQueryable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>) |
Vytvoří rozdíl množiny dvou sekvencí pomocí zadané IEqualityComparer<T> hodnoty pro porovnání hodnot. |
Except<TSource>(IQueryable<TSource>, IEnumerable<TSource>)
- Zdroj:
- Queryable.cs
- Zdroj:
- Queryable.cs
- Zdroj:
- Queryable.cs
Vytvoří rozdíl sady dvou sekvencí pomocí výchozího porovnávače rovnosti pro porovnání hodnot.
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í.
Parametry
- source1
- IQueryable<TSource>
Bude vrácena IQueryable<T> hodnota, jejíž prvky, které nejsou také v source2
.
- source2
- IEnumerable<TSource>
Objekt IEnumerable<T> , jehož prvky, které se vyskytují také v první sekvenci, se ve vrácené sekvenci nezobrazí.
Návraty
Hodnota IQueryable<T> , která obsahuje množinu těchto dvou sekvencí.
Výjimky
source1
nebo source2
je null
.
Příklady
Následující příklad kódu ukazuje, jak použít Except<TSource>(IQueryable<TSource>, IEnumerable<TSource>) k vrácení prvků, které se zobrazují pouze v první zdrojové sekvenci.
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
Metoda Except<TSource>(IQueryable<TSource>, IEnumerable<TSource>) vygeneruje MethodCallExpression , který představuje volání Except<TSource>(IQueryable<TSource>, IEnumerable<TSource>) sebe sama jako konstruované obecné metody. Pak předá MethodCallExpressionCreateQuery<TElement>(Expression) metodě parametru IQueryProvider reprezentované Provider vlastnostísource1
.
Chování dotazu, ke kterému dochází v důsledku spuštění stromu výrazu, který představuje volání Except<TSource>(IQueryable<TSource>, IEnumerable<TSource>) , závisí na implementaci typu parametru source1
. Očekávané chování je, že se vrátí všechny prvky v souboru source1
s výjimkou těch, které jsou také v source2
.
Platí pro
Except<TSource>(IQueryable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>)
- Zdroj:
- Queryable.cs
- Zdroj:
- Queryable.cs
- Zdroj:
- Queryable.cs
Vytvoří rozdíl množiny dvou sekvencí pomocí zadané IEqualityComparer<T> hodnoty pro porovnání hodnot.
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í.
Parametry
- source1
- IQueryable<TSource>
Bude vrácena IQueryable<T> hodnota, jejíž prvky, které nejsou také v source2
.
- source2
- IEnumerable<TSource>
Objekt IEnumerable<T> , jehož prvky, které se vyskytují také v první sekvenci, se ve vrácené sekvenci nezobrazí.
- comparer
- IEqualityComparer<TSource>
K porovnání hodnot.IEqualityComparer<T>
Návraty
Hodnota IQueryable<T> , která obsahuje množinu těchto dvou sekvencí.
Výjimky
source1
nebo source2
je null
.
Poznámky
Metoda Except<TSource>(IQueryable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>) vygeneruje MethodCallExpression , který představuje volání Except<TSource>(IQueryable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>) sebe sama jako konstruované obecné metody. Pak předá MethodCallExpressionCreateQuery<TElement>(Expression) metodě parametru IQueryProvider reprezentované Provider vlastnostísource1
.
Chování dotazu, ke kterému dochází v důsledku spuštění stromu výrazu, který představuje volání Except<TSource>(IQueryable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>) , závisí na implementaci typu parametru source1
. 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
a comparer
slouží k porovnání hodnot.