Classificando operadores em LINQ

Uma operação de classificação permite ordenar os elementos de uma sequência com base em um ou mais atributos.

Operador Descrição Sintaxe de expressão de consulta C # Sintaxe de expressão de consulta VB
Ordenar por O operador classifica os valores em ordem crescente ordenar por Ordenar por
OrderByDescending O operador classifica os valores em ordem decrescente ordem por ... decrescente Ordem por ... Decrescente
ThenBy Executa uma classificação secundária em ordem crescente ordenar por …, … Ordenar por …, …
ThenByDescending Executa uma classificação secundária em ordem decrescente ordem por ..., ... decrescente Ordem por ..., ... decrescente
Reverter Executa uma reversão da ordem dos elementos em uma coleção Não aplicável Não aplicável

Exemplo de OrderBy, OrderByDescending - Expressão 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

Quando o código acima em C # ou VB é compilado e executado, ele produz o seguinte resultado -

Values in ascending order: -20 
-3 
0 
1 
6 
10 
12
Values in descending order: 12 
10 
6 
1 
0 
-3 
-20

Nos operadores Thenby e ThenbyDescending, a mesma sintaxe pode ser aplicada e a ordem de classificação dependerá de mais de uma coluna. A prioridade será a coluna mantida em primeiro lugar.