Compartir a través de


Queryable.Distinct Método

Definición

Devuelve diversos elementos de una secuencia.

Sobrecargas

Distinct<TSource>(IQueryable<TSource>)

Devuelve diversos elementos de una secuencia utilizando el comparador de igualdad predeterminado para comparar los valores.

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

Devuelve diversos elementos de una secuencia utilizando un objeto IEqualityComparer<T> especificado para comparar los valores.

Distinct<TSource>(IQueryable<TSource>)

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

Devuelve diversos elementos de una secuencia utilizando el comparador de igualdad predeterminado para comparar los valores.

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.

Parámetros

source
IQueryable<TSource>

IQueryable<T> del que se van a quitar los elementos duplicados.

Devoluciones

IQueryable<TSource>

Una interfaz IQueryable<T> que contiene diversos elementos de source.

Excepciones

source es null.

Ejemplos

En el ejemplo de código siguiente se muestra cómo usar Distinct<TSource>(IQueryable<TSource>) para devolver elementos distintos de una secuencia.

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 objeto que representa llamarse Distinct<TSource>(IQueryable<TSource>) a sí mismo como un método genérico construido. A continuación, pasa al MethodCallExpressionCreateQuery<TElement>(Expression) método del IQueryProvider representado por la Provider propiedad del source parámetro .

El comportamiento de consulta que se produce como resultado de ejecutar un árbol de expresión que representa la llamada Distinct<TSource>(IQueryable<TSource>) depende de la implementación del tipo del source parámetro. El comportamiento esperado es que devuelve una secuencia desordenada de los elementos únicos de source.

Se aplica a

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

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

Devuelve diversos elementos de una secuencia utilizando un objeto IEqualityComparer<T> especificado para comparar los valores.

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.

Parámetros

source
IQueryable<TSource>

IQueryable<T> del que se van a quitar los elementos duplicados.

comparer
IEqualityComparer<TSource>

IEqualityComparer<T> para comparar valores.

Devoluciones

IQueryable<TSource>

Una interfaz IQueryable<T> que contiene diversos elementos de source.

Excepciones

source o comparer es null.

Comentarios

El Distinct<TSource>(IQueryable<TSource>, IEqualityComparer<TSource>) método genera un MethodCallExpression objeto que representa llamarse Distinct<TSource>(IQueryable<TSource>, IEqualityComparer<TSource>) a sí mismo como un método genérico construido. A continuación, pasa al MethodCallExpressionCreateQuery<TElement>(Expression) método del IQueryProvider representado por la Provider propiedad del source parámetro .

El comportamiento de consulta que se produce como resultado de ejecutar un árbol de expresión que representa la llamada Distinct<TSource>(IQueryable<TSource>, IEqualityComparer<TSource>) depende de la implementación del tipo del source parámetro. El comportamiento esperado es que devuelve una secuencia desordenada de los elementos únicos de source mediante comparer para comparar valores.

Se aplica a