Queryable.Distinct Yöntem

Tanım

Bir diziden ayrı öğeler döndürür.

Aşırı Yüklemeler

Distinct<TSource>(IQueryable<TSource>)

Değerleri karşılaştırmak için varsayılan eşitlik karşılaştırıcısını kullanarak bir diziden ayrı öğeler döndürür.

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

Değerleri karşılaştırmak için belirtilen IEqualityComparer<T> öğesini kullanarak bir diziden ayrı öğeler döndürür.

Distinct<TSource>(IQueryable<TSource>)

Kaynak:
Queryable.cs
Kaynak:
Queryable.cs
Kaynak:
Queryable.cs

Değerleri karşılaştırmak için varsayılan eşitlik karşılaştırıcısını kullanarak bir diziden ayrı öğeler döndürür.

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)

Tür Parametreleri

TSource

öğelerinin sourcetürü.

Parametreler

source
IQueryable<TSource>

yinelenenleri IQueryable<T> kaldırılacak öğe.

Döndürülenler

IQueryable<TSource>

IQueryable<T> öğesinden sourceayrı öğeler içeren bir.

Özel durumlar

source, null değeridir.

Örnekler

Aşağıdaki kod örneği, bir diziden ayrı öğeler döndürmek için nasıl kullanılacağını Distinct<TSource>(IQueryable<TSource>) gösterir.

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

Açıklamalar

yöntemi, Distinct<TSource>(IQueryable<TSource>) kendisini oluşturulan genel bir MethodCallExpression yöntem olarak çağıran Distinct<TSource>(IQueryable<TSource>) bir oluşturur. Ardından parametresinin MethodCallExpressionCreateQuery<TElement>(Expression) özelliği tarafından temsil edilen yöntemine IQueryProviderProvidersource iletir.

Çağrıyı Distinct<TSource>(IQueryable<TSource>) temsil eden bir ifade ağacının yürütülmesi sonucunda oluşan sorgu davranışı, parametre türünün uygulanmasına source bağlıdır. Beklenen davranış, içindeki benzersiz öğelerin sıralanmamış bir dizisini döndürmesidir source.

Şunlara uygulanır

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

Kaynak:
Queryable.cs
Kaynak:
Queryable.cs
Kaynak:
Queryable.cs

Değerleri karşılaştırmak için belirtilen IEqualityComparer<T> öğesini kullanarak bir diziden ayrı öğeler döndürür.

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)

Tür Parametreleri

TSource

öğelerinin sourcetürü.

Parametreler

source
IQueryable<TSource>

yinelenenleri IQueryable<T> kaldırılacak öğe.

comparer
IEqualityComparer<TSource>

Değerleri karşılaştırmak için bir IEqualityComparer<T> .

Döndürülenler

IQueryable<TSource>

IQueryable<T> öğesinden sourceayrı öğeler içeren bir.

Özel durumlar

source veya comparer şeklindedir null.

Açıklamalar

yöntemi, Distinct<TSource>(IQueryable<TSource>, IEqualityComparer<TSource>) kendisini oluşturulan genel bir MethodCallExpression yöntem olarak çağıran Distinct<TSource>(IQueryable<TSource>, IEqualityComparer<TSource>) bir oluşturur. Ardından parametresinin MethodCallExpressionCreateQuery<TElement>(Expression) özelliği tarafından temsil edilen yöntemine IQueryProviderProvidersource iletir.

Çağrıyı Distinct<TSource>(IQueryable<TSource>, IEqualityComparer<TSource>) temsil eden bir ifade ağacının yürütülmesi sonucunda oluşan sorgu davranışı, parametre türünün uygulanmasına source bağlıdır. Beklenen davranış, değerleri karşılaştırmak için kullanarak comparer içindeki source benzersiz öğelerin sıralanmamış bir sırasını döndürmesidir.

Şunlara uygulanır