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ří množinu dvou sekvencí.
Přetížení
| Name | Description |
|---|---|
| Except<TSource>(IQueryable<TSource>, IEnumerable<TSource>) |
Vytvoří množinu dvou sekvencí pomocí výchozího porovnávače rovnosti k porovnání hodnot. |
| Except<TSource>(IQueryable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>) |
Vytvoří množinu dvou sekvencí pomocí zadaného IEqualityComparer<T> k porovnání hodnot. |
Except<TSource>(IQueryable<TSource>, IEnumerable<TSource>)
- Zdroj:
- Queryable.cs
- Zdroj:
- Queryable.cs
- Zdroj:
- Queryable.cs
- Zdroj:
- Queryable.cs
- Zdroj:
- Queryable.cs
Vytvoří množinu dvou sekvencí pomocí výchozího porovnávače rovnosti k 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);
[System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
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>
[<System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")>]
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>
Jejíž IQueryable<T> prvky, které nejsou také v source2 , budou vráceny.
- source2
- IEnumerable<TSource>
Jejíž IEnumerable<T> prvky, které se vyskytují také v první sekvenci, se ve vrácené sekvenci nezobrazí.
Návraty
Hodnota IQueryable<T> , která obsahuje množinový rozdíl dvou sekvencí.
- Atributy
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í těchto 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 samotné volání Except<TSource>(IQueryable<TSource>, IEnumerable<TSource>) jako vytvořenou obecnou metodu. Pak předá MethodCallExpression metodu IQueryProviderCreateQuery<TElement>(Expression) reprezentované Provider vlastností parametrusource1.
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 všechny prvky jsou source1 vráceny 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
- Zdroj:
- Queryable.cs
- Zdroj:
- Queryable.cs
Vytvoří množinu dvou sekvencí pomocí zadaného IEqualityComparer<T> k 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);
[System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
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>
[<System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")>]
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>
Jejíž IQueryable<T> prvky, které nejsou také v source2 , budou vráceny.
- source2
- IEnumerable<TSource>
Jejíž IEnumerable<T> prvky, které se vyskytují také v první sekvenci, se ve vrácené sekvenci nezobrazí.
- comparer
- IEqualityComparer<TSource>
Hodnota IEqualityComparer<T> pro porovnání hodnot.
Návraty
Hodnota IQueryable<T> , která obsahuje množinový rozdíl dvou sekvencí.
- Atributy
Výjimky
source1 nebo source2 je null.
Poznámky
Metoda Except<TSource>(IQueryable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>) vygeneruje MethodCallExpression , která představuje samotné volání Except<TSource>(IQueryable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>) jako vytvořenou obecnou metodu. Pak předá MethodCallExpression metodu IQueryProviderCreateQuery<TElement>(Expression) reprezentované Provider vlastností parametrusource1.
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 source2a comparer slouží k porovnání hodnot.