Operadores de clasificación en LINQ
Una operación de clasificación permite ordenar los elementos de una secuencia sobre la base de uno o más atributos.
Operador | Descripción | Sintaxis de expresión de consulta de C # | Sintaxis de expresión de consulta de VB |
---|---|---|---|
OrderBy | El operador ordena los valores en orden ascendente | ordenar por | Ordenar por |
OrderByDescending | El operador ordena los valores en orden descendente | orden por ... descendente | Ordenar por ... Descendente |
Entonces por | Ejecuta una clasificación secundaria en orden ascendente | orderby…,… | Ordenar por…,… |
ThenByDescending | Ejecuta una clasificación secundaria en orden descendente. | orderby ..., ... descendiendo | Ordenar por…,… Descendente |
Contrarrestar | Realiza una inversión del orden de los elementos en una colección. | No aplica | No aplica |
Ejemplo de OrderBy, OrderByDescending - Expresión de consulta
C#
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Operators {
class Program {
static void Main(string[] args) {
int[] num = { -20, 12, 6, 10, 0, -3, 1 };
//create a query that obtain the values in sorted order
var posNums = from n in num
orderby n
select n;
Console.Write("Values in ascending order: ");
// Execute the query and display the results.
foreach (int i in posNums)
Console.Write(i + " \n");
var posNumsDesc = from n in num
orderby n descending
select n;
Console.Write("\nValues in descending order: ");
// Execute the query and display the results.
foreach (int i in posNumsDesc)
Console.Write(i + " \n");
Console.ReadLine();
}
}
}
VB
Module Module1
Sub Main()
Dim num As Integer() = {-20, 12, 6, 10, 0, -3, 1};
Dim posNums = From n In num
Order By n
Select n;
Console.Write("Values in ascending order: ");
For Each n In posNums
Console.WriteLine(n)
Next
Dim posNumsDesc = From n In num
Order By n Descending
Select n;
Console.Write("Values in descending order: ");
For Each n In posNumsDesc
Console.WriteLine(n)
Next
Console.ReadLine()
End Sub
End Module
Cuando el código anterior en C # o VB se compila y ejecuta, produce el siguiente resultado:
Values in ascending order: -20
-3
0
1
6
10
12
Values in descending order: 12
10
6
1
0
-3
-20
En los operadores Thenby y ThenbyDescending, se puede aplicar la misma sintaxis y el orden de clasificación dependerá de más de una columna. La prioridad será la columna que se mantenga en primer lugar.