Partager via


Queryable.Except Méthode

Définition

Produit la différence de jeu de deux séquences.

Surcharges

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

Produit la différence de jeu de deux séquences à l’aide du comparateur d’égalité par défaut pour comparer les valeurs.

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

Produit la différence de jeu de deux séquences à l’aide de la IEqualityComparer<T> spécifiée pour comparer les valeurs.

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

Source:
Queryable.cs
Source:
Queryable.cs
Source:
Queryable.cs
Source:
Queryable.cs
Source:
Queryable.cs

Produit la différence de jeu de deux séquences à l’aide du comparateur d’égalité par défaut pour comparer les valeurs.

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)

Paramètres de type

TSource

Type des éléments des séquences d’entrée.

Paramètres

source1
IQueryable<TSource>

Dont IQueryable<T> les éléments qui ne sont pas également inclus source2 seront retournés.

source2
IEnumerable<TSource>

Dont IEnumerable<T> les éléments qui se produisent également dans la première séquence n’apparaissent pas dans la séquence retournée.

Retours

IQueryable<TSource>

Qui IQueryable<T> contient la différence de jeu des deux séquences.

Attributs

Exceptions

source1 ou source2 est null.

Exemples

L’exemple de code suivant montre comment utiliser Except<TSource>(IQueryable<TSource>, IEnumerable<TSource>) pour retourner ces éléments qui apparaissent uniquement dans la première séquence source.

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

Remarques

La Except<TSource>(IQueryable<TSource>, IEnumerable<TSource>) méthode génère un qui représente l’appel MethodCallExpressionExcept<TSource>(IQueryable<TSource>, IEnumerable<TSource>) lui-même en tant que méthode générique construite. Il passe ensuite la MethodCallExpressionCreateQuery<TElement>(Expression) méthode de l’objet IQueryProvider représenté par la Provider propriété dusource1 paramètre.

Le comportement de requête qui se produit suite à l’exécution d’une arborescence d’expressions qui représente l’appel Except<TSource>(IQueryable<TSource>, IEnumerable<TSource>) dépend de l’implémentation du type du source1 paramètre. Le comportement attendu est que tous les éléments inclus source1 sont retournés à l’exception de ceux qui sont également dans source2.

S’applique à

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

Source:
Queryable.cs
Source:
Queryable.cs
Source:
Queryable.cs
Source:
Queryable.cs
Source:
Queryable.cs

Produit la différence de jeu de deux séquences à l’aide de la IEqualityComparer<T> spécifiée pour comparer les valeurs.

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)

Paramètres de type

TSource

Type des éléments des séquences d’entrée.

Paramètres

source1
IQueryable<TSource>

Dont IQueryable<T> les éléments qui ne sont pas également inclus source2 seront retournés.

source2
IEnumerable<TSource>

Dont IEnumerable<T> les éléments qui se produisent également dans la première séquence n’apparaissent pas dans la séquence retournée.

comparer
IEqualityComparer<TSource>

Pour IEqualityComparer<T> comparer les valeurs.

Retours

IQueryable<TSource>

Qui IQueryable<T> contient la différence de jeu des deux séquences.

Attributs

Exceptions

source1 ou source2 est null.

Remarques

La Except<TSource>(IQueryable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>) méthode génère un qui représente l’appel MethodCallExpressionExcept<TSource>(IQueryable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>) lui-même en tant que méthode générique construite. Il passe ensuite la MethodCallExpressionCreateQuery<TElement>(Expression) méthode de l’objet IQueryProvider représenté par la Provider propriété dusource1 paramètre.

Le comportement de requête qui se produit suite à l’exécution d’une arborescence d’expressions qui représente l’appel Except<TSource>(IQueryable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>) dépend de l’implémentation du type du source1 paramètre. Le comportement attendu est que tous les éléments inclus source1 sont retournés à l’exception de ceux qui sont également dans source2, et comparer est utilisé pour comparer les valeurs.

S’applique à