Queryable.ThenBy メソッド

定義

シーケンス内の後続の要素を昇順で配置します。

オーバーロード

ThenBy<TSource,TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource,TKey>>)

キーに従って、シーケンス内の後続の要素を昇順で配置します。

ThenBy<TSource,TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource,TKey>>, IComparer<TKey>)

指定された比較子を使用して、シーケンス内の後続の要素を昇順で配置します。

ThenBy<TSource,TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource,TKey>>)

ソース:
Queryable.cs
ソース:
Queryable.cs
ソース:
Queryable.cs

キーに従って、シーケンス内の後続の要素を昇順で配置します。

public:
generic <typename TSource, typename TKey>
[System::Runtime::CompilerServices::Extension]
 static System::Linq::IOrderedQueryable<TSource> ^ ThenBy(System::Linq::IOrderedQueryable<TSource> ^ source, System::Linq::Expressions::Expression<Func<TSource, TKey> ^> ^ keySelector);
public static System.Linq.IOrderedQueryable<TSource> ThenBy<TSource,TKey> (this System.Linq.IOrderedQueryable<TSource> source, System.Linq.Expressions.Expression<Func<TSource,TKey>> keySelector);
static member ThenBy : System.Linq.IOrderedQueryable<'Source> * System.Linq.Expressions.Expression<Func<'Source, 'Key>> -> System.Linq.IOrderedQueryable<'Source>
<Extension()>
Public Function ThenBy(Of TSource, TKey) (source As IOrderedQueryable(Of TSource), keySelector As Expression(Of Func(Of TSource, TKey))) As IOrderedQueryable(Of TSource)

型パラメーター

TSource

source の要素の型。

TKey

keySelector で表された関数によって返されるキーの型。

パラメーター

source
IOrderedQueryable<TSource>

並べ替える要素を格納している IOrderedQueryable<T>

keySelector
Expression<Func<TSource,TKey>>

各要素からキーを抽出する関数。

戻り値

要素がキーに従って並べ替えられている IOrderedQueryable<T>

例外

source または keySelectornull です。

次のコード例では、 を使用 ThenBy<TSource,TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource,TKey>>) してシーケンス内の要素の 2 次順序を実行する方法を示します。

string[] fruits = { "grape", "passionfruit", "banana", "apple",
                      "orange", "raspberry", "mango", "blueberry" };

// Sort the strings first by their length and then
// alphabetically by passing the identity selector function.
IEnumerable<string> query =
    fruits.AsQueryable()
    .OrderBy(fruit => fruit.Length).ThenBy(fruit => fruit);

foreach (string fruit in query)
    Console.WriteLine(fruit);

/*
    This code produces the following output:

    apple
    grape
    mango
    banana
    orange
    blueberry
    raspberry
    passionfruit
*/
Dim fruits() As String = _
    {"grape", "passionfruit", "banana", "mango", _
     "orange", "raspberry", "apple", "blueberry"}

' Sort the strings first by their length and then 
' alphabetically by passing the identity selector function.
Dim query = fruits.AsQueryable() _
    .OrderBy(Function(fruit) fruit.Length).ThenBy(Function(fruit) fruit)

' Display the results.
Dim output As New System.Text.StringBuilder
For Each fruit As String In query
    output.AppendLine(fruit)
Next
MsgBox(output.ToString())

'This code produces the following output:

'apple
'grape
'mango
'banana
'orange
'blueberry
'raspberry
'passionfruit

注釈

このメソッドには、型引数が型 Expression<TDelegate> の 1 つである型のパラメーターが少なくとも 1 つ Func<T,TResult> 含まれています。 これらのパラメーターでは、ラムダ式を渡すことができます。これは に Expression<TDelegate>コンパイルされます。

メソッドは ThenBy<TSource,TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource,TKey>>)MethodCallExpression 構築されたジェネリック メソッドとして自身を呼び出すことを ThenBy<TSource,TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource,TKey>>) 表す を生成します。 次に、 パラメーターの MethodCallExpressionCreateQuery<TElement>(Expression) プロパティで表される の IQueryProvider メソッドに をProvidersource渡します。 呼び出し CreateQuery<TElement>(Expression) の結果は 型 IOrderedQueryable<T> にキャストされ、返されます。

呼び出し ThenBy<TSource,TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource,TKey>>) を表す式ツリーを実行した結果として発生するクエリ動作は、 パラメーターの型の source 実装によって異なります。 予期される動作は、 の各要素 source で を呼び出 keySelector すことによって取得されたキーに基づいて、 の要素の source2 次的な並べ替えを実行することです。 以前に確立されたすべての並べ替え順序が保持されます。

適用対象

ThenBy<TSource,TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource,TKey>>, IComparer<TKey>)

ソース:
Queryable.cs
ソース:
Queryable.cs
ソース:
Queryable.cs

指定された比較子を使用して、シーケンス内の後続の要素を昇順で配置します。

public:
generic <typename TSource, typename TKey>
[System::Runtime::CompilerServices::Extension]
 static System::Linq::IOrderedQueryable<TSource> ^ ThenBy(System::Linq::IOrderedQueryable<TSource> ^ source, System::Linq::Expressions::Expression<Func<TSource, TKey> ^> ^ keySelector, System::Collections::Generic::IComparer<TKey> ^ comparer);
public static System.Linq.IOrderedQueryable<TSource> ThenBy<TSource,TKey> (this System.Linq.IOrderedQueryable<TSource> source, System.Linq.Expressions.Expression<Func<TSource,TKey>> keySelector, System.Collections.Generic.IComparer<TKey> comparer);
public static System.Linq.IOrderedQueryable<TSource> ThenBy<TSource,TKey> (this System.Linq.IOrderedQueryable<TSource> source, System.Linq.Expressions.Expression<Func<TSource,TKey>> keySelector, System.Collections.Generic.IComparer<TKey>? comparer);
static member ThenBy : System.Linq.IOrderedQueryable<'Source> * System.Linq.Expressions.Expression<Func<'Source, 'Key>> * System.Collections.Generic.IComparer<'Key> -> System.Linq.IOrderedQueryable<'Source>
<Extension()>
Public Function ThenBy(Of TSource, TKey) (source As IOrderedQueryable(Of TSource), keySelector As Expression(Of Func(Of TSource, TKey)), comparer As IComparer(Of TKey)) As IOrderedQueryable(Of TSource)

型パラメーター

TSource

source の要素の型。

TKey

keySelector で表された関数によって返されるキーの型。

パラメーター

source
IOrderedQueryable<TSource>

並べ替える要素を格納している IOrderedQueryable<T>

keySelector
Expression<Func<TSource,TKey>>

各要素からキーを抽出する関数。

comparer
IComparer<TKey>

キーを比較する IComparer<T>

戻り値

要素がキーに従って並べ替えられている IOrderedQueryable<T>

例外

sourcekeySelector、または comparer は、null です。

注釈

このメソッドには、型引数が型 Expression<TDelegate> の 1 つである型のパラメーターが少なくとも 1 つ Func<T,TResult> 含まれています。 これらのパラメーターでは、ラムダ式を渡すことができます。これは に Expression<TDelegate>コンパイルされます。

メソッドは ThenBy<TSource,TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource,TKey>>, IComparer<TKey>)MethodCallExpression 構築されたジェネリック メソッドとして自身を呼び出すことを ThenBy<TSource,TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource,TKey>>, IComparer<TKey>) 表す を生成します。 次に、 パラメーターの MethodCallExpressionCreateQuery<TElement>(Expression) プロパティで表される の IQueryProvider メソッドに をProvidersource渡します。 呼び出し CreateQuery<TElement>(Expression) の結果は 型 IOrderedQueryable<T> にキャストされ、返されます。

呼び出し ThenBy<TSource,TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource,TKey>>, IComparer<TKey>) を表す式ツリーを実行した結果として発生するクエリ動作は、 パラメーターの型の source 実装によって異なります。 予期される動作は、 の各要素 source で を呼び出 keySelector すことによって取得されたキーに基づいて、 の要素の source2 次的な並べ替えを実行することです。 以前に確立されたすべての並べ替え順序が保持されます。 パラメーターは comparer 、キー値の比較に使用されます。

適用対象