Queryable.ThenBy Metoda

Definicja

Wykonuje kolejne porządkowanie elementów w kolejności rosnącej.Performs a subsequent ordering of the elements in a sequence in ascending order.

Przeciążenia

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

Wykonuje kolejne porządkowanie elementów w sekwencji rosnącej w kolejności przy użyciu określonej funkcji porównującej.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>>)

Wykonuje kolejne porządkowanie elementów w kolejności rosnącej według klucza.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>)

Wykonuje kolejne porządkowanie elementów w sekwencji rosnącej w kolejności przy użyciu określonej funkcji porównującej.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 elementów source .The type of the elements of source.

TKey

Typ klucza zwracanego przez funkcję reprezentowane przez keySelector .The type of the key returned by the function represented by keySelector.

Parametry

source
IOrderedQueryable<TSource>

Element IOrderedQueryable<T> zawierający elementy do sortowania.An IOrderedQueryable<T> that contains elements to sort.

keySelector
Expression<Func<TSource,TKey>>

Funkcja wyodrębniania klucza z każdego elementu.A function to extract a key from each element.

comparer
IComparer<TKey>

IComparer<T>Do porównywania kluczy.An IComparer<T> to compare keys.

Zwraca

IOrderedQueryable<TSource>

, IOrderedQueryable<T> Których elementy są sortowane według klucza.An IOrderedQueryable<T> whose elements are sorted according to a key.

Wyjątki

source or keySelector lub comparer is null .source or keySelector or comparer is null.

Uwagi

Ta metoda ma co najmniej jeden parametr typu Expression<TDelegate> , którego argument typu jest jednym z Func<T,TResult> typów.This method has at least one parameter of type Expression<TDelegate> whose type argument is one of the Func<T,TResult> types. Dla tych parametrów można przekazać wyrażenie lambda i zostanie ono skompilowane 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 element MethodCallExpression reprezentujący wywoływanie ThenBy<TSource,TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource,TKey>>, IComparer<TKey>) jako metodę rodzajową.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. Następnie przekazuje MethodCallExpression do CreateQuery<TElement>(Expression) metody IQueryProvider reprezentowanej przez Provider Właściwość 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. Wynikiem wywołania CreateQuery<TElement>(Expression) jest rzutowanie na typ IOrderedQueryable<T> i zwrócenie.The result of calling CreateQuery<TElement>(Expression) is cast to type IOrderedQueryable<T> and returned.

Zachowanie zapytania, które występuje w wyniku wykonania drzewa wyrażenia, które reprezentuje wywołanie, ThenBy<TSource,TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource,TKey>>, IComparer<TKey>) zależy od implementacji 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. Oczekiwane zachowanie polega na tym, że wykonuje pomocnicze sortowanie elementów source opartych na kluczu uzyskanym przez wywoływanie keySelector dla każdego elementu 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. Wszystkie poprzednio ustanowione zamówienia sortowania są zachowywane.All previously established sort orders are preserved. comparerParametr jest używany do porównywania wartości kluczy.The comparer parameter is used to compare key values.

Dotyczy

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

Wykonuje kolejne porządkowanie elementów w kolejności rosnącej według klucza.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 elementów source .The type of the elements of source.

TKey

Typ klucza zwracanego przez funkcję reprezentowane przez keySelector .The type of the key returned by the function represented by keySelector.

Parametry

source
IOrderedQueryable<TSource>

Element IOrderedQueryable<T> zawierający elementy do sortowania.An IOrderedQueryable<T> that contains elements to sort.

keySelector
Expression<Func<TSource,TKey>>

Funkcja wyodrębniania klucza z każdego elementu.A function to extract a key from each element.

Zwraca

IOrderedQueryable<TSource>

, IOrderedQueryable<T> Których elementy są sortowane według klucza.An IOrderedQueryable<T> whose elements are sorted according to a key.

Wyjątki

source lub keySelector jest null .source or keySelector is null.

Przykłady

Poniższy przykład kodu demonstruje, jak używać ThenBy<TSource,TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource,TKey>>) do wykonywania pomocniczej kolejności elementów w sekwencji.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

Uwagi

Ta metoda ma co najmniej jeden parametr typu Expression<TDelegate> , którego argument typu jest jednym z Func<T,TResult> typów.This method has at least one parameter of type Expression<TDelegate> whose type argument is one of the Func<T,TResult> types. Dla tych parametrów można przekazać wyrażenie lambda i zostanie ono skompilowane 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 element MethodCallExpression reprezentujący wywoływanie ThenBy<TSource,TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource,TKey>>) jako metodę rodzajową.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. Następnie przekazuje MethodCallExpression do CreateQuery<TElement>(Expression) metody IQueryProvider reprezentowanej przez Provider Właściwość 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. Wynikiem wywołania CreateQuery<TElement>(Expression) jest rzutowanie na typ IOrderedQueryable<T> i zwrócenie.The result of calling CreateQuery<TElement>(Expression) is cast to type IOrderedQueryable<T> and returned.

Zachowanie zapytania, które występuje w wyniku wykonania drzewa wyrażenia, które reprezentuje wywołanie, ThenBy<TSource,TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource,TKey>>) zależy od implementacji 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. Oczekiwane zachowanie polega na tym, że wykonuje pomocnicze sortowanie elementów source opartych na kluczu uzyskanym przez wywoływanie keySelector dla każdego elementu 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. Wszystkie poprzednio ustanowione zamówienia sortowania są zachowywane.All previously established sort orders are preserved.

Dotyczy