Queryable.Distinct Método

Definición

Devuelve diversos elementos de una secuencia.Returns distinct elements from a sequence.

Sobrecargas

Distinct<TSource>(IQueryable<TSource>)

Devuelve diversos elementos de una secuencia utilizando el comparador de igualdad predeterminado para comparar los valores.Returns distinct elements from a sequence by using the default equality comparer to compare values.

Distinct<TSource>(IQueryable<TSource>, IEqualityComparer<TSource>)

Devuelve diversos elementos de una secuencia utilizando un objeto IEqualityComparer<T> especificado para comparar los valores.Returns distinct elements from a sequence by using a specified IEqualityComparer<T> to compare values.

Distinct<TSource>(IQueryable<TSource>)

Devuelve diversos elementos de una secuencia utilizando el comparador de igualdad predeterminado para comparar los valores.Returns distinct elements from a sequence by using the default equality comparer to compare values.

public:
generic <typename TSource>
[System::Runtime::CompilerServices::Extension]
 static System::Linq::IQueryable<TSource> ^ Distinct(System::Linq::IQueryable<TSource> ^ source);
public static System.Linq.IQueryable<TSource> Distinct<TSource> (this System.Linq.IQueryable<TSource> source);
static member Distinct : System.Linq.IQueryable<'Source> -> System.Linq.IQueryable<'Source>
<Extension()>
Public Function Distinct(Of TSource) (source As IQueryable(Of TSource)) As IQueryable(Of TSource)

Parámetros de tipo

TSource

Tipo de los elementos de source.The type of the elements of source.

Parámetros

source
IQueryable<TSource>

IQueryable<T> del que se van a quitar los elementos duplicados.The IQueryable<T> to remove duplicates from.

Devoluciones

IQueryable<TSource>

Una interfaz IQueryable<T> que contiene diversos elementos de source.An IQueryable<T> that contains distinct elements from source.

Excepciones

source es null.source is null.

Ejemplos

En el ejemplo de código siguiente se muestra cómo usar Distinct<TSource>(IQueryable<TSource>) para devolver distintos elementos de una secuencia.The following code example demonstrates how to use Distinct<TSource>(IQueryable<TSource>) to return distinct elements from a sequence.

List<int> ages = new List<int> { 21, 46, 46, 55, 17, 21, 55, 55 };

IEnumerable<int> distinctAges = ages.AsQueryable().Distinct();

Console.WriteLine("Distinct ages:");

foreach (int age in distinctAges)
    Console.WriteLine(age);

/*
    This code produces the following output:

    Distinct ages:
    21
    46
    55
    17
*/
Dim ages As List(Of Integer) = New List(Of Integer)(New Integer() {21, 46, 46, 55, 17, 21, 55, 55})

Dim distinctAges As IEnumerable(Of Integer) = ages.AsQueryable().Distinct()

Dim output As New System.Text.StringBuilder
output.AppendLine("Distinct ages:")

For Each age As Integer In distinctAges
    output.AppendLine(age)
Next

' Display the output.
MsgBox(output.ToString())

' This code produces the following output:
'
' Distinct(ages)
' 21
' 46
' 55
' 17

Comentarios

El Distinct<TSource>(IQueryable<TSource>) método genera un MethodCallExpression que representa la llamada a Distinct<TSource>(IQueryable<TSource>) sí mismo como un método genérico construido.The Distinct<TSource>(IQueryable<TSource>) method generates a MethodCallExpression that represents calling Distinct<TSource>(IQueryable<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 source parámetro.It then passes the MethodCallExpression to the CreateQuery<TElement>(Expression) method of the IQueryProvider represented by the Provider property of the source parameter.

El comportamiento de la consulta que se produce como resultado de ejecutar un árbol de expresión que representa Distinct<TSource>(IQueryable<TSource>) la llamada depende de la implementación del tipo del source parámetro.The query behavior that occurs as a result of executing an expression tree that represents calling Distinct<TSource>(IQueryable<TSource>) depends on the implementation of the type of the source parameter. El comportamiento esperado es que devuelva una secuencia desordenada de los elementos únicos en source .The expected behavior is that it returns an unordered sequence of the unique items in source.

Se aplica a

Distinct<TSource>(IQueryable<TSource>, IEqualityComparer<TSource>)

Devuelve diversos elementos de una secuencia utilizando un objeto IEqualityComparer<T> especificado para comparar los valores.Returns distinct elements from a sequence by using a specified IEqualityComparer<T> to compare values.

public:
generic <typename TSource>
[System::Runtime::CompilerServices::Extension]
 static System::Linq::IQueryable<TSource> ^ Distinct(System::Linq::IQueryable<TSource> ^ source, System::Collections::Generic::IEqualityComparer<TSource> ^ comparer);
public static System.Linq.IQueryable<TSource> Distinct<TSource> (this System.Linq.IQueryable<TSource> source, System.Collections.Generic.IEqualityComparer<TSource> comparer);
public static System.Linq.IQueryable<TSource> Distinct<TSource> (this System.Linq.IQueryable<TSource> source, System.Collections.Generic.IEqualityComparer<TSource>? comparer);
static member Distinct : System.Linq.IQueryable<'Source> * System.Collections.Generic.IEqualityComparer<'Source> -> System.Linq.IQueryable<'Source>
<Extension()>
Public Function Distinct(Of TSource) (source As IQueryable(Of TSource), comparer As IEqualityComparer(Of TSource)) As IQueryable(Of TSource)

Parámetros de tipo

TSource

Tipo de los elementos de source.The type of the elements of source.

Parámetros

source
IQueryable<TSource>

IQueryable<T> del que se van a quitar los elementos duplicados.The IQueryable<T> to remove duplicates from.

comparer
IEqualityComparer<TSource>

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

Devoluciones

IQueryable<TSource>

Una interfaz IQueryable<T> que contiene diversos elementos de source.An IQueryable<T> that contains distinct elements from source.

Excepciones

source o comparer es null.source or comparer is null.

Comentarios

El Distinct<TSource>(IQueryable<TSource>, IEqualityComparer<TSource>) método genera un MethodCallExpression que representa la llamada a Distinct<TSource>(IQueryable<TSource>, IEqualityComparer<TSource>) sí mismo como un método genérico construido.The Distinct<TSource>(IQueryable<TSource>, IEqualityComparer<TSource>) method generates a MethodCallExpression that represents calling Distinct<TSource>(IQueryable<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 source parámetro.It then passes the MethodCallExpression to the CreateQuery<TElement>(Expression) method of the IQueryProvider represented by the Provider property of the source parameter.

El comportamiento de la consulta que se produce como resultado de ejecutar un árbol de expresión que representa Distinct<TSource>(IQueryable<TSource>, IEqualityComparer<TSource>) la llamada depende de la implementación del tipo del source parámetro.The query behavior that occurs as a result of executing an expression tree that represents calling Distinct<TSource>(IQueryable<TSource>, IEqualityComparer<TSource>) depends on the implementation of the type of the source parameter. El comportamiento esperado es que devuelva una secuencia desordenada de los elementos únicos de source mediante el uso comparer de para comparar valores.The expected behavior is that it returns an unordered sequence of the unique items in source by using comparer to compare values.

Se aplica a