Queryable.Except Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Ger den inställda skillnaden mellan två sekvenser.
Överlagringar
| Name | Description |
|---|---|
| Except<TSource>(IQueryable<TSource>, IEnumerable<TSource>) |
Ger den angivna skillnaden mellan två sekvenser genom att använda standardjämlikhetsjämförlikningsjämföraren för att jämföra värden. |
| Except<TSource>(IQueryable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>) |
Skapar den inställda skillnaden mellan två sekvenser med hjälp av angivna IEqualityComparer<T> för att jämföra värden. |
Except<TSource>(IQueryable<TSource>, IEnumerable<TSource>)
- Källa:
- Queryable.cs
- Källa:
- Queryable.cs
- Källa:
- Queryable.cs
- Källa:
- Queryable.cs
- Källa:
- Queryable.cs
Ger den angivna skillnaden mellan två sekvenser genom att använda standardjämlikhetsjämförlikningsjämföraren för att jämföra värden.
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)
Typparametrar
- TSource
Typ av element i indatasekvenserna.
Parametrar
- source1
- IQueryable<TSource>
En IQueryable<T> vars element som inte också finns i source2 returneras.
- source2
- IEnumerable<TSource>
Ett IEnumerable<T> vars element som också förekommer i den första sekvensen visas inte i den returnerade sekvensen.
Returer
En IQueryable<T> som innehåller den angivna skillnaden för de två sekvenserna.
- Attribut
Undantag
source1 eller source2 är null.
Exempel
Följande kodexempel visar hur du använder Except<TSource>(IQueryable<TSource>, IEnumerable<TSource>) för att returnera de element som bara visas i den första källsekvensen.
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
Kommentarer
Metoden Except<TSource>(IQueryable<TSource>, IEnumerable<TSource>) genererar en MethodCallExpression som representerar att anropa Except<TSource>(IQueryable<TSource>, IEnumerable<TSource>) sig själv som en konstruerad generisk metod. Den skickar sedan till MethodCallExpression metoden för den CreateQuery<TElement>(Expression) som representeras av IQueryProvider egenskapen för parameternProvider.source1
Frågebeteendet som uppstår till följd av att ett uttrycksträd som representerar anrop Except<TSource>(IQueryable<TSource>, IEnumerable<TSource>) körs beror på implementeringen av source1 parametertypen. Det förväntade beteendet är att alla element i source1 returneras förutom de som också finns i source2.
Gäller för
Except<TSource>(IQueryable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>)
- Källa:
- Queryable.cs
- Källa:
- Queryable.cs
- Källa:
- Queryable.cs
- Källa:
- Queryable.cs
- Källa:
- Queryable.cs
Skapar den inställda skillnaden mellan två sekvenser med hjälp av angivna IEqualityComparer<T> för att jämföra värden.
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)
Typparametrar
- TSource
Typ av element i indatasekvenserna.
Parametrar
- source1
- IQueryable<TSource>
En IQueryable<T> vars element som inte också finns i source2 returneras.
- source2
- IEnumerable<TSource>
Ett IEnumerable<T> vars element som också förekommer i den första sekvensen visas inte i den returnerade sekvensen.
- comparer
- IEqualityComparer<TSource>
En IEqualityComparer<T> för att jämföra värden.
Returer
En IQueryable<T> som innehåller den angivna skillnaden för de två sekvenserna.
- Attribut
Undantag
source1 eller source2 är null.
Kommentarer
Metoden Except<TSource>(IQueryable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>) genererar en MethodCallExpression som representerar att anropa Except<TSource>(IQueryable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>) sig själv som en konstruerad generisk metod. Den skickar sedan till MethodCallExpression metoden för den CreateQuery<TElement>(Expression) som representeras av IQueryProvider egenskapen för parameternProvider.source1
Frågebeteendet som uppstår till följd av att ett uttrycksträd som representerar anrop Except<TSource>(IQueryable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>) körs beror på implementeringen av source1 parametertypen. Det förväntade beteendet är att alla element i source1 returneras förutom de som också finns i source2och comparer används för att jämföra värden.