Queryable.ThenBy Queryable.ThenBy Queryable.ThenBy Queryable.ThenBy Method

Definición

Realiza una clasificación posterior de los elementos de una secuencia en orden ascendente.Performs a subsequent ordering of the elements in a sequence in ascending order.

Sobrecargas

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

Realiza una clasificación posterior de los elementos de una secuencia en orden ascendente utilizando un comparador especificado.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>>) ThenBy<TSource,TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource,TKey>>) ThenBy<TSource,TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource,TKey>>) ThenBy<TSource,TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource,TKey>>)

Realiza una clasificación posterior de los elementos de una secuencia en orden ascendentes con arreglo a una clave.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>) ThenBy<TSource,TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource,TKey>>, IComparer<TKey>) ThenBy<TSource,TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource,TKey>>, IComparer<TKey>) ThenBy<TSource,TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource,TKey>>, IComparer<TKey>)

Realiza una clasificación posterior de los elementos de una secuencia en orden ascendente utilizando un comparador especificado.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);
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)

Parámetros de tipo

TSource

Tipo de los elementos de source.The type of the elements of source.

TKey

El tipo de la clave devuelta por la función representada por keySelector.The type of the key returned by the function represented by keySelector.

Parámetros

source
IOrderedQueryable<TSource>

IOrderedQueryable<T> que contiene los elementos que se van a ordenar.An IOrderedQueryable<T> that contains elements to sort.

keySelector
Expression<Func<TSource,TKey>>

Función para extraer una clave a partir de cada elemento.A function to extract a key from each element.

comparer
IComparer<TKey>

IComparer<T> para comparar claves.An IComparer<T> to compare keys.

Devoluciones

Una interfaz IOrderedQueryable<T> cuyos elementos se ordenan con arreglo a una clave.An IOrderedQueryable<T> whose elements are sorted according to a key.

Excepciones

source o keySelector o comparer es null.source or keySelector or comparer is null.

Comentarios

Este método no tiene al menos un parámetro de tipo Expression<TDelegate> cuyo argumento de tipo es uno de los Func<T,TResult> tipos.This method has at least one parameter of type Expression<TDelegate> whose type argument is one of the Func<T,TResult> types. Para estos parámetros, se pueden pasar en una expresión lambda y se compilará en un Expression<TDelegate>.For these parameters, you can pass in a lambda expression and it will be compiled to an Expression<TDelegate>.

El ThenBy<TSource,TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource,TKey>>, IComparer<TKey>) método genera una MethodCallExpression que representa la llamada ThenBy<TSource,TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource,TKey>>, IComparer<TKey>) como un método genérico construido.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. A continuación, pasa el MethodCallExpression a la CreateQuery<TElement>(Expression) método de la IQueryProvider representado por la Provider propiedad de la source parámetro.It then passes the MethodCallExpression to the CreateQuery<TElement>(Expression) method of the IQueryProvider represented by the Provider property of the source parameter. El resultado de llamar a CreateQuery<TElement>(Expression) se convierte al tipo IOrderedQueryable<T> y se devuelven.The result of calling CreateQuery<TElement>(Expression) is cast to type IOrderedQueryable<T> and returned.

El comportamiento de la consulta que se produce como resultado de ejecutar un árbol de expresión que representa la llamada ThenBy<TSource,TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource,TKey>>, IComparer<TKey>) depende de la implementación del tipo de la source parámetro.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. El comportamiento esperado es que realiza una ordenación secundaria de los elementos de source según la clave que se obtiene al invocar keySelector en cada elemento de 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. Todos los establecidos anteriormente se conservan los criterios de ordenación.All previously established sort orders are preserved. El comparer parámetro se utiliza para comparar los valores de clave.The comparer parameter is used to compare key values.

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

Realiza una clasificación posterior de los elementos de una secuencia en orden ascendentes con arreglo a una clave.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)

Parámetros de tipo

TSource

Tipo de los elementos de source.The type of the elements of source.

TKey

El tipo de la clave devuelta por la función representada por keySelector.The type of the key returned by the function represented by keySelector.

Parámetros

source
IOrderedQueryable<TSource>

IOrderedQueryable<T> que contiene los elementos que se van a ordenar.An IOrderedQueryable<T> that contains elements to sort.

keySelector
Expression<Func<TSource,TKey>>

Función para extraer una clave a partir de cada elemento.A function to extract a key from each element.

Devoluciones

Una interfaz IOrderedQueryable<T> cuyos elementos se ordenan con arreglo a una clave.An IOrderedQueryable<T> whose elements are sorted according to a key.

Excepciones

source o keySelector es null.source or keySelector is null.

Ejemplos

En el ejemplo de código siguiente se muestra cómo usar ThenBy<TSource,TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource,TKey>>) para realizar una ordenación secundaria de los elementos de una secuencia.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

Comentarios

Este método no tiene al menos un parámetro de tipo Expression<TDelegate> cuyo argumento de tipo es uno de los Func<T,TResult> tipos.This method has at least one parameter of type Expression<TDelegate> whose type argument is one of the Func<T,TResult> types. Para estos parámetros, se pueden pasar en una expresión lambda y se compilará en un Expression<TDelegate>.For these parameters, you can pass in a lambda expression and it will be compiled to an Expression<TDelegate>.

El ThenBy<TSource,TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource,TKey>>) método genera una MethodCallExpression que representa la llamada ThenBy<TSource,TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource,TKey>>) como un método genérico construido.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. A continuación, pasa el MethodCallExpression a la CreateQuery<TElement>(Expression) método de la IQueryProvider representado por la Provider propiedad de la source parámetro.It then passes the MethodCallExpression to the CreateQuery<TElement>(Expression) method of the IQueryProvider represented by the Provider property of the source parameter. El resultado de llamar a CreateQuery<TElement>(Expression) se convierte al tipo IOrderedQueryable<T> y se devuelven.The result of calling CreateQuery<TElement>(Expression) is cast to type IOrderedQueryable<T> and returned.

El comportamiento de la consulta que se produce como resultado de ejecutar un árbol de expresión que representa la llamada ThenBy<TSource,TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource,TKey>>) depende de la implementación del tipo de la source parámetro.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. El comportamiento esperado es que realiza una ordenación secundaria de los elementos de source según la clave que se obtiene al invocar keySelector en cada elemento de 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. Todos los establecidos anteriormente se conservan los criterios de ordenación.All previously established sort orders are preserved.

Se aplica a