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.