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.