Operatori di ordinamento in LINQ

Un'operazione di ordinamento consente di ordinare gli elementi di una sequenza sulla base di uno o più attributi.

Operatore Descrizione Sintassi delle espressioni di query C # Sintassi delle espressioni di query VB
Ordinato da L'operatore ordina i valori in ordine crescente ordinato da Ordinato da
OrderByDescending L'operatore ordina i valori in ordine decrescente orderby ... discendente Ordina per ... decrescente
Allora per Esegue un ordinamento secondario in ordine crescente ordinato da …, … Ordinato da …, …
ThenByDescending Esegue un ordinamento secondario in ordine decrescente orderby ..., ... discendente Ordina per ..., ... decrescente
Inversione Esegue un'inversione dell'ordine degli elementi in una raccolta Non applicabile Non applicabile

Esempio di OrderBy, OrderByDescending - Espressione di query

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 il codice sopra in C # o VB viene compilato ed eseguito, produce il seguente risultato:

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

Negli operatori Thenby e ThenbyDescending, è possibile applicare la stessa sintassi e l'ordinamento dipenderà da più di una colonna. La priorità sarà la colonna che viene mantenuta per prima.