Queryable.Distinct メソッド

定義

シーケンスから一意の要素を返します。Returns distinct elements from a sequence.

オーバーロード

Distinct<TSource>(IQueryable<TSource>)

既定の等値比較子を使用して値を比較することにより、シーケンスから一意の要素を返します。Returns distinct elements from a sequence by using the default equality comparer to compare values.

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

指定された IEqualityComparer<T> を使用して値を比較することにより、シーケンスから一意の要素を返します。Returns distinct elements from a sequence by using a specified IEqualityComparer<T> to compare values.

Distinct<TSource>(IQueryable<TSource>)

既定の等値比較子を使用して値を比較することにより、シーケンスから一意の要素を返します。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)

型パラメーター

TSource

source の要素の型。The type of the elements of source.

パラメーター

source
IQueryable<TSource>

重複を削除する対象の IQueryable<T>The IQueryable<T> to remove duplicates from.

戻り値

IQueryable<TSource>

IQueryable<T> の一意の要素が格納される sourceAn IQueryable<T> that contains distinct elements from source.

例外

sourcenull です。source is null.

次のコード例は、Distinct<TSource>(IQueryable<TSource>) を使用して、シーケンスから個別の要素を返す方法を示しています。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

注釈

Distinct<TSource>(IQueryable<TSource>) メソッドは、構築されたジェネリックメソッドとしての呼び出し Distinct<TSource>(IQueryable<TSource>) 自体を表す MethodCallExpression を生成します。The Distinct<TSource>(IQueryable<TSource>) method generates a MethodCallExpression that represents calling Distinct<TSource>(IQueryable<TSource>) itself as a constructed generic method. 次に、source パラメーターの Provider プロパティによって表される IQueryProviderCreateQuery<TElement>(Expression) メソッドに MethodCallExpression を渡します。It then passes the MethodCallExpression to the CreateQuery<TElement>(Expression) method of the IQueryProvider represented by the Provider property of the source parameter.

Distinct<TSource>(IQueryable<TSource>) の呼び出しを表す式ツリーを実行した結果として発生するクエリ動作は、source パラメーターの型の実装によって異なります。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. 期待される動作は、sourceで一意の項目の順序付けられていないシーケンスを返すことです。The expected behavior is that it returns an unordered sequence of the unique items in source.

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

指定された IEqualityComparer<T> を使用して値を比較することにより、シーケンスから一意の要素を返します。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);
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)

型パラメーター

TSource

source の要素の型。The type of the elements of source.

パラメーター

source
IQueryable<TSource>

重複を削除する対象の IQueryable<T>The IQueryable<T> to remove duplicates from.

comparer
IEqualityComparer<TSource>

値を比較する IEqualityComparer<T>An IEqualityComparer<T> to compare values.

戻り値

IQueryable<TSource>

IQueryable<T> の一意の要素が格納される sourceAn IQueryable<T> that contains distinct elements from source.

例外

source 、または comparernullです。source or comparer is null.

注釈

Distinct<TSource>(IQueryable<TSource>, IEqualityComparer<TSource>) メソッドは、構築されたジェネリックメソッドとしての呼び出し Distinct<TSource>(IQueryable<TSource>, IEqualityComparer<TSource>) 自体を表す MethodCallExpression を生成します。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. 次に、source パラメーターの Provider プロパティによって表される IQueryProviderCreateQuery<TElement>(Expression) メソッドに MethodCallExpression を渡します。It then passes the MethodCallExpression to the CreateQuery<TElement>(Expression) method of the IQueryProvider represented by the Provider property of the source parameter.

Distinct<TSource>(IQueryable<TSource>, IEqualityComparer<TSource>) の呼び出しを表す式ツリーを実行した結果として発生するクエリ動作は、source パラメーターの型の実装によって異なります。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. 期待される動作は、comparer を使用して値を比較することによって、source 内の一意の項目の順序付けられていないシーケンスを返すことです。The expected behavior is that it returns an unordered sequence of the unique items in source by using comparer to compare values.

適用対象