Ordenación de datos (C#)Sorting Data (C#)

Una operación de ordenación ordena los elementos de una secuencia según uno o varios atributos.A sorting operation orders the elements of a sequence based on one or more attributes. El primer criterio de ordenación realiza una ordenación primaria de los elementos.The first sort criterion performs a primary sort on the elements. Al especificar un segundo criterio de ordenación, se pueden ordenar los elementos dentro de cada grupo de ordenación primaria.By specifying a second sort criterion, you can sort the elements within each primary sort group.

En la ilustración siguiente se muestran los resultados de una operación de ordenación alfabética en una secuencia de caracteres:The following illustration shows the results of an alphabetical sort operation on a sequence of characters:

Gráfico que muestra una operación de ordenación alfabética.

Los métodos de operador de consulta estándar que ordenan datos de datos se enumeran en la sección siguiente.The standard query operator methods that sort data are listed in the following section.

MétodosMethods

Nombre del métodoMethod Name DESCRIPCIÓNDescription Sintaxis de la expresión de consulta de C#C# Query Expression Syntax Más informaciónMore Information
OrderByOrderBy Ordena valores en orden ascendente.Sorts values in ascending order. orderby Enumerable.OrderBy

Queryable.OrderBy
OrderByDescendingOrderByDescending Ordena valores en orden descendente.Sorts values in descending order. orderby … descending Enumerable.OrderByDescending

Queryable.OrderByDescending
ThenByThenBy Realiza una ordenación secundaria en orden ascendente.Performs a secondary sort in ascending order. orderby …, … Enumerable.ThenBy

Queryable.ThenBy
ThenByDescendingThenByDescending Realiza una ordenación secundaria en orden descendente.Performs a secondary sort in descending order. orderby …, … descending Enumerable.ThenByDescending

Queryable.ThenByDescending
ReverseReverse Invierte el orden de los elementos de una colección.Reverses the order of the elements in a collection. No es aplicable.Not applicable. Enumerable.Reverse

Queryable.Reverse

Ejemplos de sintaxis de expresiones de consultaQuery Expression Syntax Examples

Ejemplos de ordenación principalPrimary Sort Examples

Orden ascendente principalPrimary Ascending Sort

En el siguiente ejemplo se muestra cómo usar la cláusula orderby en una consulta LINQ para ordenar las cadenas de una matriz por la longitud de la cadena, en orden ascendente.The following example demonstrates how to use the orderby clause in a LINQ query to sort the strings in an array by string length, in ascending order.

string[] words = { "the", "quick", "brown", "fox", "jumps" };  
  
IEnumerable<string> query = from word in words  
                            orderby word.Length  
                            select word;  
  
foreach (string str in query)  
    Console.WriteLine(str);  
  
/* This code produces the following output:  
  
    the  
    fox  
    quick  
    brown  
    jumps  
*/  

Orden descendente principalPrimary Descending Sort

En el siguiente ejemplo se muestra cómo usar la cláusula orderby descending en una consulta LINQ para ordenar las cadenas por su letra inicial, en orden descendente.The next example demonstrates how to use the orderby descending clause in a LINQ query to sort the strings by their first letter, in descending order.

string[] words = { "the", "quick", "brown", "fox", "jumps" };  
  
IEnumerable<string> query = from word in words  
                            orderby word.Substring(0, 1) descending  
                            select word;  
  
foreach (string str in query)  
    Console.WriteLine(str);  
  
/* This code produces the following output:  
  
    the  
    quick  
    jumps  
    fox  
    brown  
*/  

Ejemplos de ordenación secundariaSecondary Sort Examples

Orden ascendente secundarioSecondary Ascending Sort

En el siguiente ejemplo se muestra cómo usar la cláusula orderby en una consulta LINQ para realizar una ordenación principal y secundaria de las cadenas de una matriz.The following example demonstrates how to use the orderby clause in a LINQ query to perform a primary and secondary sort of the strings in an array. Las cadenas se ordenan primero por su longitud y, después, por la letra inicial de la cadena, en orden ascendente.The strings are sorted primarily by length and secondarily by the first letter of the string, both in ascending order.

string[] words = { "the", "quick", "brown", "fox", "jumps" };  
  
IEnumerable<string> query = from word in words  
                            orderby word.Length, word.Substring(0, 1)  
                            select word;  
  
foreach (string str in query)  
    Console.WriteLine(str);  
  
/* This code produces the following output:  
  
    fox  
    the  
    brown  
    jumps  
    quick  
*/  

Orden descendente secundarioSecondary Descending Sort

En el siguiente ejemplo se muestra cómo usar la cláusula orderby descending en una consulta LINQ para realizar una ordenación principal en orden ascendente y una ordenación secundaria en orden descendente.The next example demonstrates how to use the orderby descending clause in a LINQ query to perform a primary sort, in ascending order, and a secondary sort, in descending order. Las cadenas se ordenan primero por su longitud y, después, por la letra inicial de la cadena.The strings are sorted primarily by length and secondarily by the first letter of the string.

string[] words = { "the", "quick", "brown", "fox", "jumps" };  
  
IEnumerable<string> query = from word in words  
                            orderby word.Length, word.Substring(0, 1) descending  
                            select word;  
  
foreach (string str in query)  
    Console.WriteLine(str);  
  
/* This code produces the following output:  
  
    the  
    fox  
    quick  
    jumps  
    brown  
*/  

Vea tambiénSee also