Queryable.ThenBy Metoda

Definice

Provede následné řazení prvků v sekvenci ve vzestupném pořadí.Performs a subsequent ordering of the elements in a sequence in ascending order.

Přetížení

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

Provede následné řazení prvků v sekvenci ve vzestupném pořadí pomocí zadané porovnávací metody.Performs a subsequent ordering of the elements in a sequence in ascending order by using a specified comparer.

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

Provede následné řazení prvků v sekvenci vzestupném pořadí podle klíče.Performs a subsequent ordering of the elements in a sequence in ascending order according to a key.

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

Provede následné řazení prvků v sekvenci ve vzestupném pořadí pomocí zadané porovnávací metody.Performs a subsequent ordering of the elements in a sequence in ascending order by using a specified comparer.

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)

Parametry typu

TSource

Typ prvků source .The type of the elements of source.

TKey

Typ klíče vrácený funkcí reprezentovanou keySelector .The type of the key returned by the function represented by keySelector.

Parametry

source
IOrderedQueryable<TSource>

Objekt IOrderedQueryable<T> , který obsahuje prvky pro řazení.An IOrderedQueryable<T> that contains elements to sort.

keySelector
Expression<Func<TSource,TKey>>

Funkce pro extrakci klíče z každého elementu.A function to extract a key from each element.

comparer
IComparer<TKey>

IComparer<T>K porovnání klíčů.An IComparer<T> to compare keys.

Návraty

IOrderedQueryable<TSource>

IOrderedQueryable<T>Jejichž prvky jsou seřazeny podle klíče.An IOrderedQueryable<T> whose elements are sorted according to a key.

Výjimky

source nebo keySelector comparer je null .source or keySelector or comparer is null.

Poznámky

Tato metoda má alespoň jeden parametr typu, Expression<TDelegate> jehož argumentem typu je jeden z Func<T,TResult> typů.This method has at least one parameter of type Expression<TDelegate> whose type argument is one of the Func<T,TResult> types. Pro tyto parametry můžete předat výraz lambda a bude zkompilován do Expression<TDelegate> .For these parameters, you can pass in a lambda expression and it will be compiled to an Expression<TDelegate>.

ThenBy<TSource,TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource,TKey>>, IComparer<TKey>)Metoda generuje MethodCallExpression , který reprezentuje volání ThenBy<TSource,TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource,TKey>>, IComparer<TKey>) sebe sama jako vytvořenou obecnou metodu.The ThenBy<TSource,TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource,TKey>>, IComparer<TKey>) method generates a MethodCallExpression that represents calling ThenBy<TSource,TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource,TKey>>, IComparer<TKey>) itself as a constructed generic method. Poté předá MethodCallExpression CreateQuery<TElement>(Expression) metodě IQueryProvider reprezentované Provider vlastností source parametru.It then passes the MethodCallExpression to the CreateQuery<TElement>(Expression) method of the IQueryProvider represented by the Provider property of the source parameter. Výsledek volání CreateQuery<TElement>(Expression) je přetypování na typ IOrderedQueryable<T> a vráceno.The result of calling CreateQuery<TElement>(Expression) is cast to type IOrderedQueryable<T> and returned.

Chování dotazu, k němuž dojde v důsledku provádění stromu výrazu, který představuje volání, ThenBy<TSource,TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource,TKey>>, IComparer<TKey>) závisí na implementaci typu source parametru.The query behavior that occurs as a result of executing an expression tree that represents calling ThenBy<TSource,TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource,TKey>>, IComparer<TKey>) depends on the implementation of the type of the source parameter. Očekávané chování je, že provádí sekundární řazení prvků na source základě klíče získaného vyvoláním keySelector na každý prvek source .The expected behavior is that it performs a secondary sort of the elements of source based on the key obtained by invoking keySelector on each element of source. Všechny dříve vytvořené objednávky řazení jsou zachovány.All previously established sort orders are preserved. comparerParametr se používá k porovnání hodnot klíčů.The comparer parameter is used to compare key values.

Platí pro

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

Provede následné řazení prvků v sekvenci vzestupném pořadí podle klíče.Performs a subsequent ordering of the elements in a sequence in ascending order according to a key.

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)

Parametry typu

TSource

Typ prvků source .The type of the elements of source.

TKey

Typ klíče vrácený funkcí reprezentovanou keySelector .The type of the key returned by the function represented by keySelector.

Parametry

source
IOrderedQueryable<TSource>

Objekt IOrderedQueryable<T> , který obsahuje prvky pro řazení.An IOrderedQueryable<T> that contains elements to sort.

keySelector
Expression<Func<TSource,TKey>>

Funkce pro extrakci klíče z každého elementu.A function to extract a key from each element.

Návraty

IOrderedQueryable<TSource>

IOrderedQueryable<T>Jejichž prvky jsou seřazeny podle klíče.An IOrderedQueryable<T> whose elements are sorted according to a key.

Výjimky

source nebo keySelector je null .source or keySelector is null.

Příklady

Následující příklad kódu ukazuje, jak použít ThenBy<TSource,TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource,TKey>>) k provedení sekundárního pořadí prvků v sekvenci.The following code example demonstrates how to use ThenBy<TSource,TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource,TKey>>) to perform a secondary ordering of the elements in a sequence.

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

Poznámky

Tato metoda má alespoň jeden parametr typu, Expression<TDelegate> jehož argumentem typu je jeden z Func<T,TResult> typů.This method has at least one parameter of type Expression<TDelegate> whose type argument is one of the Func<T,TResult> types. Pro tyto parametry můžete předat výraz lambda a bude zkompilován do Expression<TDelegate> .For these parameters, you can pass in a lambda expression and it will be compiled to an Expression<TDelegate>.

ThenBy<TSource,TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource,TKey>>)Metoda generuje MethodCallExpression , který reprezentuje volání ThenBy<TSource,TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource,TKey>>) sebe sama jako vytvořenou obecnou metodu.The ThenBy<TSource,TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource,TKey>>) method generates a MethodCallExpression that represents calling ThenBy<TSource,TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource,TKey>>) itself as a constructed generic method. Poté předá MethodCallExpression CreateQuery<TElement>(Expression) metodě IQueryProvider reprezentované Provider vlastností source parametru.It then passes the MethodCallExpression to the CreateQuery<TElement>(Expression) method of the IQueryProvider represented by the Provider property of the source parameter. Výsledek volání CreateQuery<TElement>(Expression) je přetypování na typ IOrderedQueryable<T> a vráceno.The result of calling CreateQuery<TElement>(Expression) is cast to type IOrderedQueryable<T> and returned.

Chování dotazu, k němuž dojde v důsledku provádění stromu výrazu, který představuje volání, ThenBy<TSource,TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource,TKey>>) závisí na implementaci typu source parametru.The query behavior that occurs as a result of executing an expression tree that represents calling ThenBy<TSource,TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource,TKey>>) depends on the implementation of the type of the source parameter. Očekávané chování je, že provádí sekundární řazení prvků na source základě klíče získaného vyvoláním keySelector na každý prvek source .The expected behavior is that it performs a secondary sort of the elements of source based on the key obtained by invoking keySelector on each element of source. Všechny dříve vytvořené objednávky řazení jsou zachovány.All previously established sort orders are preserved.

Platí pro