Enumerable.ThenBy Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Realiza una clasificación posterior de los elementos de una secuencia en orden ascendente.
Sobrecargas
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. |
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. |
ThenBy<TSource,TKey>(IOrderedEnumerable<TSource>, Func<TSource,TKey>)
- Source:
- OrderBy.cs
- Source:
- OrderBy.cs
- Source:
- OrderBy.cs
Realiza una clasificación posterior de los elementos de una secuencia en orden ascendentes con arreglo a una clave.
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
.
- TKey
Tipo de la clave devuelta por keySelector
.
Parámetros
- source
- IOrderedEnumerable<TSource>
IOrderedEnumerable<TElement> que contiene los elementos que se van a ordenar.
- keySelector
- Func<TSource,TKey>
Función para extraer una clave a partir de cada elemento.
Devoluciones
Una interfaz IOrderedEnumerable<TElement> cuyos elementos se ordenan con arreglo a una clave.
Excepciones
source
o keySelector
es null
.
Ejemplos
En el ejemplo de código siguiente se muestra cómo usar ThenBy<TSource,TKey>(IOrderedEnumerable<TSource>, Func<TSource,TKey>) para realizar una ordenación secundaria de los elementos de una secuencia.
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
Console.WriteLine(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 diferida. El valor devuelto inmediato es un objeto que almacena toda la información necesaria para realizar la acción. La consulta representada por este método no se ejecuta hasta que el objeto se enumera llamando directamente a su GetEnumerator
método o mediante foreach
en C# o For Each
en Visual Basic.
Para ordenar una secuencia por los valores de los propios elementos, especifique la función de identidad (x => x
en C# o Function(x) x
en Visual Basic) para keySelector
.
ThenBy y ThenByDescending se definen para extender el tipo IOrderedEnumerable<TElement>, que también es el tipo de valor devuelto de estos métodos. Este diseño permite especificar varios criterios de ordenación aplicando cualquier número de ThenBy métodos o ThenByDescending .
Nota
Dado que IOrderedEnumerable<TElement> hereda de IEnumerable<T>, puede llamar a OrderBy o OrderByDescending en los resultados de una llamada a OrderBy, ThenByOrderByDescendingo ThenByDescending. Al hacerlo, se presenta una nueva ordenación principal que omite la ordenación establecida anteriormente.
Este método compara las claves mediante el comparador Defaultpredeterminado .
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. Por el contrario, una ordenación inestable no conserva el orden de los elementos que tienen la misma clave.
En la sintaxis de expresión de consulta, una orderby [first criterion], [second criterion]
cláusula (C#) o Order By [first criterion], [second criterion]
(Visual Basic) se traduce en una invocación de ThenBy.
Consulte también
Se aplica a
ThenBy<TSource,TKey>(IOrderedEnumerable<TSource>, Func<TSource,TKey>, IComparer<TKey>)
- Source:
- OrderBy.cs
- Source:
- OrderBy.cs
- Source:
- OrderBy.cs
Realiza una clasificación posterior de los elementos de una secuencia en orden ascendente utilizando un comparador especificado.
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);
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
.
- TKey
Tipo de la clave devuelta por keySelector
.
Parámetros
- source
- IOrderedEnumerable<TSource>
IOrderedEnumerable<TElement> que contiene los elementos que se van a ordenar.
- keySelector
- Func<TSource,TKey>
Función para extraer una clave a partir de cada elemento.
- comparer
- IComparer<TKey>
IComparer<T> para comparar claves.
Devoluciones
Una interfaz IOrderedEnumerable<TElement> cuyos elementos se ordenan con arreglo a una clave.
Excepciones
source
o keySelector
es null
.
Comentarios
Este método se implementa mediante la ejecución diferida. El valor devuelto inmediato es un objeto que almacena toda la información necesaria para realizar la acción. La consulta representada por este método no se ejecuta hasta que el objeto se enumera llamando directamente a su GetEnumerator
método o mediante foreach
en C# o For Each
en Visual Basic.
Para ordenar una secuencia por los valores de los propios elementos, especifique la función de identidad (x => x
en C# o Function(x) x
en Visual Basic) para keySelector
.
ThenBy y ThenByDescending se definen para extender el tipo IOrderedEnumerable<TElement>, que también es el tipo de valor devuelto de estos métodos. Este diseño permite especificar varios criterios de ordenación aplicando cualquier número de ThenBy métodos o ThenByDescending .
Nota
Dado que IOrderedEnumerable<TElement> hereda de IEnumerable<T>, puede llamar a OrderBy o OrderByDescending en los resultados de una llamada a OrderBy, ThenByOrderByDescendingo ThenByDescending. Al hacerlo, se presenta una nueva ordenación principal que omite la ordenación establecida anteriormente.
Si comparer
es null
, el comparador Default predeterminado se usa para comparar claves.
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. Por el contrario, una ordenación inestable no conserva el orden de los elementos que tienen la misma clave.