# Queryable.Except Método

## Definición

Proporciona la diferencia de conjuntos de dos secuencias.Produces the set difference of two sequences.

## Sobrecargas

 Except(IQueryable, IEnumerable, IEqualityComparer) Proporciona la diferencia de conjuntos de dos secuencias utilizando el objeto IEqualityComparer especificado para comparar los valores.Produces the set difference of two sequences by using the specified IEqualityComparer to compare values. Except(IQueryable, IEnumerable) Proporciona la diferencia de conjuntos de dos secuencias utilizando el comparador de igualdad predeterminado para comparar los valores.Produces the set difference of two sequences by using the default equality comparer to compare values.

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

Proporciona la diferencia de conjuntos de dos secuencias utilizando el objeto IEqualityComparer<T> especificado para comparar los valores.Produces the set difference of two sequences by using the specified IEqualityComparer<T> to compare values.

``````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)``````

#### Parámetros de tipo

TSource

Tipo de los elementos de las secuencias de entrada.The type of the elements of the input sequences.

#### Parámetros

source1
IQueryable<TSource>

IQueryable<T> cuyos elementos que no se encuentren en `source2` se van a devolver.An IQueryable<T> whose elements that are not also in `source2` will be returned.

source2
IEnumerable<TSource>

IEnumerable<T> cuyos elementos que se encuentren también en la primera secuencia no aparecerán en la secuencia devuelta.An IEnumerable<T> whose elements that also occur in the first sequence will not appear in the returned sequence.

comparer
IEqualityComparer<TSource>

IEqualityComparer<T> para comparar valores.An IEqualityComparer<T> to compare values.

#### Devoluciones

IQueryable<TSource>

IQueryable<T> que contiene la diferencia de conjuntos de las dos secuencias.An IQueryable<T> that contains the set difference of the two sequences.

#### Excepciones

`source1` o `source2` es `null`.`source1` or `source2` is `null`.

### Comentarios

El Except<TSource>(IQueryable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>) método genera un MethodCallExpression que representa la llamada a Except<TSource>(IQueryable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>) sí mismo como un método genérico construido.The Except<TSource>(IQueryable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>) method generates a MethodCallExpression that represents calling Except<TSource>(IQueryable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>) itself as a constructed generic method. A continuación, pasa el MethodCallExpression al CreateQuery<TElement>(Expression) método de IQueryProvider representado por la Provider propiedad del `source1` parámetro.It then passes the MethodCallExpression to the CreateQuery<TElement>(Expression) method of the IQueryProvider represented by the Provider property of the`source1` parameter.

El comportamiento de la consulta que se produce como resultado de ejecutar un árbol de expresión que representa Except<TSource>(IQueryable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>) la llamada depende de la implementación del tipo del `source1` parámetro.The query behavior that occurs as a result of executing an expression tree that represents calling Except<TSource>(IQueryable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>) depends on the implementation of the type of the `source1` parameter. El comportamiento esperado es que se devuelvan todos los elementos de `source1` , excepto los que también están en `source2` , y que `comparer` se utiliza para comparar los valores.The expected behavior is that all the elements in `source1` are returned except for those that are also in `source2`, and `comparer` is used to compare values.

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

Proporciona la diferencia de conjuntos de dos secuencias utilizando el comparador de igualdad predeterminado para comparar los valores.Produces the set difference of two sequences by using the default equality comparer to compare values.

``````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)``````

#### Parámetros de tipo

TSource

Tipo de los elementos de las secuencias de entrada.The type of the elements of the input sequences.

#### Parámetros

source1
IQueryable<TSource>

IQueryable<T> cuyos elementos que no se encuentren en `source2` se van a devolver.An IQueryable<T> whose elements that are not also in `source2` will be returned.

source2
IEnumerable<TSource>

IEnumerable<T> cuyos elementos que se encuentren también en la primera secuencia no aparecerán en la secuencia devuelta.An IEnumerable<T> whose elements that also occur in the first sequence will not appear in the returned sequence.

#### Devoluciones

IQueryable<TSource>

IQueryable<T> que contiene la diferencia de conjuntos de las dos secuencias.An IQueryable<T> that contains the set difference of the two sequences.

#### Excepciones

`source1` o `source2` es `null`.`source1` or `source2` is `null`.

### Ejemplos

En el ejemplo de código siguiente se muestra cómo usar Except<TSource>(IQueryable<TSource>, IEnumerable<TSource>) para devolver los elementos que solo aparecen en la primera secuencia de origen.The following code example demonstrates how to use Except<TSource>(IQueryable<TSource>, IEnumerable<TSource>) to return those elements that only appear in the first source sequence.

``````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
``````

### Comentarios

El Except<TSource>(IQueryable<TSource>, IEnumerable<TSource>) método genera un MethodCallExpression que representa la llamada a Except<TSource>(IQueryable<TSource>, IEnumerable<TSource>) sí mismo como un método genérico construido.The Except<TSource>(IQueryable<TSource>, IEnumerable<TSource>) method generates a MethodCallExpression that represents calling Except<TSource>(IQueryable<TSource>, IEnumerable<TSource>) itself as a constructed generic method. A continuación, pasa el MethodCallExpression al CreateQuery<TElement>(Expression) método de IQueryProvider representado por la Provider propiedad del `source1` parámetro.It then passes the MethodCallExpression to the CreateQuery<TElement>(Expression) method of the IQueryProvider represented by the Provider property of the`source1` parameter.

El comportamiento de la consulta que se produce como resultado de ejecutar un árbol de expresión que representa Except<TSource>(IQueryable<TSource>, IEnumerable<TSource>) la llamada depende de la implementación del tipo del `source1` parámetro.The query behavior that occurs as a result of executing an expression tree that represents calling Except<TSource>(IQueryable<TSource>, IEnumerable<TSource>) depends on the implementation of the type of the `source1` parameter. El comportamiento esperado es que se devuelvan todos los elementos de, `source1` excepto los que también se encuentran en `source2` .The expected behavior is that all the elements in `source1` are returned except for those that are also in `source2`.