Enumerable.ThenBy Enumerable.ThenBy Enumerable.ThenBy Enumerable.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>(IOrderedEnumerable<TSource>, Func<TSource,TKey>, IComparer<TKey>) ThenBy<TSource,TKey>(IOrderedEnumerable<TSource>, Func<TSource,TKey>, IComparer<TKey>) ThenBy<TSource,TKey>(IOrderedEnumerable<TSource>, Func<TSource,TKey>, IComparer<TKey>) ThenBy<TSource,TKey>(IOrderedEnumerable<TSource>, 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>(IOrderedEnumerable<TSource>, Func<TSource,TKey>) ThenBy<TSource,TKey>(IOrderedEnumerable<TSource>, Func<TSource,TKey>) ThenBy<TSource,TKey>(IOrderedEnumerable<TSource>, Func<TSource,TKey>) ThenBy<TSource,TKey>(IOrderedEnumerable<TSource>, 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>(IOrderedEnumerable<TSource>, Func<TSource,TKey>, IComparer<TKey>) ThenBy<TSource,TKey>(IOrderedEnumerable<TSource>, Func<TSource,TKey>, IComparer<TKey>) ThenBy<TSource,TKey>(IOrderedEnumerable<TSource>, Func<TSource,TKey>, IComparer<TKey>) ThenBy<TSource,TKey>(IOrderedEnumerable<TSource>, 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::IOrderedEnumerable<TSource> ^ ThenBy(System::Linq::IOrderedEnumerable<TSource> ^ source, Func<TSource, TKey> ^ keySelector, System::Collections::Generic::IComparer<TKey> ^ comparer);
public static System.Linq.IOrderedEnumerable<TSource> ThenBy<TSource,TKey> (this System.Linq.IOrderedEnumerable<TSource> source, Func<TSource,TKey> keySelector, System.Collections.Generic.IComparer<TKey> comparer);
static member ThenBy : System.Linq.IOrderedEnumerable<'Source> * Func<'Source, 'Key> * System.Collections.Generic.IComparer<'Key> -> System.Linq.IOrderedEnumerable<'Source>
<Extension()>
Public Function ThenBy(Of TSource, TKey) (source As IOrderedEnumerable(Of TSource), keySelector As Func(Of TSource, TKey), comparer As IComparer(Of TKey)) As IOrderedEnumerable(Of TSource)

Parámetros de tipo

TSource

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

TKey

Tipo de la clave devuelta por keySelector.The type of the key returned by keySelector.

Parámetros

source
IOrderedEnumerable<TSource>

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

keySelector
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 IOrderedEnumerable<TElement> cuyos elementos se ordenan con arreglo a una clave.An IOrderedEnumerable<TElement> whose elements are sorted according to a key.

Excepciones

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

Comentarios

Este método se implementa mediante la ejecución aplazada.This method is implemented by using deferred execution. El valor devuelto inmediato es un objeto que almacena toda la información necesaria para realizar la acción.The immediate return value is an object that stores all the information that is required to perform the action. La consulta representada por este método no se ejecuta hasta que el objeto se enumera llamando a GetEnumerator su método directamente o usando foreach en Visual C# o For Each en Visual Basic.The query represented by this method is not executed until the object is enumerated either by calling its GetEnumerator method directly or by using foreach in Visual C# or For Each in Visual Basic.

Para ordenar una secuencia por los valores de los propios elementos, especifique la función de identidadx => x (en C# visual Function(x) x o en Visual Basic) keySelectorpara.To order a sequence by the values of the elements themselves, specify the identity function (x => x in Visual C# or Function(x) x in Visual Basic) for keySelector.

ThenByy ThenByDescending se definen para extender el tipo IOrderedEnumerable<TElement>, que también es el tipo de valor devuelto de estos métodos.ThenBy and ThenByDescending are defined to extend the type IOrderedEnumerable<TElement>, which is also the return type of these methods. Este diseño le permite especificar varios criterios de ordenación aplicando cualquier número ThenBy de ThenByDescending métodos o.This design enables you to specify multiple sort criteria by applying any number of ThenBy or ThenByDescending methods.

Nota

Dado IOrderedEnumerable<TElement> que hereda de IEnumerable<T>, puede llamar OrderBy a o OrderByDescending a los resultados de una llamada a OrderBy, OrderByDescending ThenBy o ThenByDescending.Because IOrderedEnumerable<TElement> inherits from IEnumerable<T>, you can call OrderBy or OrderByDescending on the results of a call to OrderBy, OrderByDescending, ThenBy or ThenByDescending. Al hacerlo, se introduce una nueva ordenación principal que omite la ordenación previamente establecida.Doing this introduces a new primary ordering that ignores the previously established ordering.

Si comparer es null ,seutilizaelcomparadorpredeterminadoparaDefault comparar las claves.If comparer is null, the default comparer Default is used to compare keys.

Este método realiza una ordenación estable; es decir, si las claves de dos elementos son iguales, se conserva el orden de los elementos.This method performs a stable sort; that is, if the keys of two elements are equal, the order of the elements is preserved. Por el contrario, una ordenación inestable no conserva el orden de los elementos que tienen la misma clave.In contrast, an unstable sort does not preserve the order of elements that have the same key.

ThenBy<TSource,TKey>(IOrderedEnumerable<TSource>, Func<TSource,TKey>) ThenBy<TSource,TKey>(IOrderedEnumerable<TSource>, Func<TSource,TKey>) ThenBy<TSource,TKey>(IOrderedEnumerable<TSource>, Func<TSource,TKey>) ThenBy<TSource,TKey>(IOrderedEnumerable<TSource>, 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::IOrderedEnumerable<TSource> ^ ThenBy(System::Linq::IOrderedEnumerable<TSource> ^ source, Func<TSource, TKey> ^ keySelector);
public static System.Linq.IOrderedEnumerable<TSource> ThenBy<TSource,TKey> (this System.Linq.IOrderedEnumerable<TSource> source, Func<TSource,TKey> keySelector);
static member ThenBy : System.Linq.IOrderedEnumerable<'Source> * Func<'Source, 'Key> -> System.Linq.IOrderedEnumerable<'Source>
<Extension()>
Public Function ThenBy(Of TSource, TKey) (source As IOrderedEnumerable(Of TSource), keySelector As Func(Of TSource, TKey)) As IOrderedEnumerable(Of TSource)

Parámetros de tipo

TSource

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

TKey

Tipo de la clave devuelta por keySelector.The type of the key returned by keySelector.

Parámetros

source
IOrderedEnumerable<TSource>

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

keySelector
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 IOrderedEnumerable<TElement> cuyos elementos se ordenan con arreglo a una clave.An IOrderedEnumerable<TElement> 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 ThenBy<TSource,TKey>(IOrderedEnumerable<TSource>, Func<TSource,TKey>) cómo utilizar para realizar una ordenación secundaria de los elementos de una secuencia.The following code example demonstrates how to use ThenBy<TSource,TKey>(IOrderedEnumerable<TSource>, Func<TSource,TKey>) to perform a secondary ordering of the elements in a sequence.

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

// Sort the strings first by their length and then 
//alphabetically by passing the identity selector function.
IEnumerable<string> query =
    fruits.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
*/
' Create an array of strings.
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 function.
Dim query As IEnumerable(Of String) =
fruits _
.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 se implementa mediante la ejecución aplazada.This method is implemented by using deferred execution. El valor devuelto inmediato es un objeto que almacena toda la información necesaria para realizar la acción.The immediate return value is an object that stores all the information that is required to perform the action. La consulta representada por este método no se ejecuta hasta que el objeto se enumera llamando a GetEnumerator su método directamente o usando foreach en Visual C# o For Each en Visual Basic.The query represented by this method is not executed until the object is enumerated either by calling its GetEnumerator method directly or by using foreach in Visual C# or For Each in Visual Basic.

Para ordenar una secuencia por los valores de los propios elementos, especifique la función de identidadx => x (en C# visual Function(x) x o en Visual Basic) keySelectorpara.To order a sequence by the values of the elements themselves, specify the identity function (x => x in Visual C# or Function(x) x in Visual Basic) for keySelector.

ThenByy ThenByDescending se definen para extender el tipo IOrderedEnumerable<TElement>, que también es el tipo de valor devuelto de estos métodos.ThenBy and ThenByDescending are defined to extend the type IOrderedEnumerable<TElement>, which is also the return type of these methods. Este diseño le permite especificar varios criterios de ordenación aplicando cualquier número ThenBy de ThenByDescending métodos o.This design enables you to specify multiple sort criteria by applying any number of ThenBy or ThenByDescending methods.

Nota

Dado IOrderedEnumerable<TElement> que hereda de IEnumerable<T>, puede llamar OrderBy a o OrderByDescending a los resultados de una llamada a OrderBy, OrderByDescending ThenBy o ThenByDescending.Because IOrderedEnumerable<TElement> inherits from IEnumerable<T>, you can call OrderBy or OrderByDescending on the results of a call to OrderBy, OrderByDescending, ThenBy or ThenByDescending. Al hacerlo, se introduce una nueva ordenación principal que omite la ordenación previamente establecida.Doing this introduces a new primary ordering that ignores the previously established ordering.

Este método compara las claves mediante el comparador Defaultpredeterminado.This method compares keys by using the default comparer Default.

Este método realiza una ordenación estable; es decir, si las claves de dos elementos son iguales, se conserva el orden de los elementos.This method performs a stable sort; that is, if the keys of two elements are equal, the order of the elements is preserved. Por el contrario, una ordenación inestable no conserva el orden de los elementos que tienen la misma clave.In contrast, an unstable sort does not preserve the order of elements that have the same key.

En la sintaxis de las expresiones orderby [first criterion], [second criterion] de consulta C#, una Order By [first criterion], [second criterion] cláusula (visual) o (Visual Basic) se traduce en una ThenByinvocación de.In query expression syntax, an orderby [first criterion], [second criterion] (Visual C#) or Order By [first criterion], [second criterion] (Visual Basic) clause translates to an invocation of ThenBy.

Consulte también:

Se aplica a