Queryable.Distinct Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Returnerar distinkta element från en sekvens.
Överlagringar
| Name | Description |
|---|---|
| Distinct<TSource>(IQueryable<TSource>) |
Returnerar distinkta element från en sekvens med hjälp av standardjämlikhetsjämföraren för att jämföra värden. |
| Distinct<TSource>(IQueryable<TSource>, IEqualityComparer<TSource>) |
Returnerar distinkta element från en sekvens med hjälp av en angiven IEqualityComparer<T> för att jämföra värden. |
Distinct<TSource>(IQueryable<TSource>)
Returnerar distinkta element från en sekvens med hjälp av standardjämlikhetsjämföraren för att jämföra värden.
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)
Typparametrar
- TSource
Typen av element sourcei .
Parametrar
- source
- IQueryable<TSource>
Att IQueryable<T> ta bort dubbletter från.
Returer
En IQueryable<T> som innehåller distinkta element från source.
Undantag
source är null.
Exempel
Följande kodexempel visar hur du använder Distinct<TSource>(IQueryable<TSource>) för att returnera distinkta element från en sekvens.
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
Kommentarer
Metoden Distinct<TSource>(IQueryable<TSource>) genererar en MethodCallExpression som representerar att anropa Distinct<TSource>(IQueryable<TSource>) sig själv som en konstruerad generisk metod. Den skickar sedan till CreateQuery<TElement>(Expression) metoden för den IQueryProvider som representeras av Provider egenskapen för parameternsource.MethodCallExpression
Frågebeteendet som uppstår till följd av att ett uttrycksträd som representerar anrop Distinct<TSource>(IQueryable<TSource>) körs beror på implementeringen av source parametertypen. Det förväntade beteendet är att den returnerar en osorterad sekvens av de unika objekten i source.
Gäller för
Distinct<TSource>(IQueryable<TSource>, IEqualityComparer<TSource>)
Returnerar distinkta element från en sekvens med hjälp av en angiven IEqualityComparer<T> för att jämföra värden.
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);
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)
Typparametrar
- TSource
Typen av element sourcei .
Parametrar
- source
- IQueryable<TSource>
Att IQueryable<T> ta bort dubbletter från.
- comparer
- IEqualityComparer<TSource>
En IEqualityComparer<T> för att jämföra värden.
Returer
En IQueryable<T> som innehåller distinkta element från source.
Undantag
source eller comparer är null.
Kommentarer
Metoden Distinct<TSource>(IQueryable<TSource>, IEqualityComparer<TSource>) genererar en MethodCallExpression som representerar att anropa Distinct<TSource>(IQueryable<TSource>, IEqualityComparer<TSource>) sig själv som en konstruerad generisk metod. Den skickar sedan till CreateQuery<TElement>(Expression) metoden för den IQueryProvider som representeras av Provider egenskapen för parameternsource.MethodCallExpression
Frågebeteendet som uppstår till följd av att ett uttrycksträd som representerar anrop Distinct<TSource>(IQueryable<TSource>, IEqualityComparer<TSource>) körs beror på implementeringen av source parametertypen. Det förväntade beteendet är att den returnerar en osorterad sekvens av de unika objekten i source med hjälp comparer av för att jämföra värden.