Ordinamento di dati (Visual Basic)
Un'operazione di ordinamento consente di ordinare gli elementi di una sequenza in base a uno o più attributi. Il primo criterio di ordinamento consente di applicare un ordinamento principale agli elementi. Specificando un secondo criterio di ordinamento, è possibile ordinare gli elementi all'interno di ogni gruppo di ordinamento principale.
La figura seguente illustra i risultati di un'operazione di ordinamento alfabetico in una sequenza di caratteri.
La sezione seguente elenca i metodi dell'operatore query standard che ordina i dati.
Metodi
Nome metodo | Descrizione | Sintassi delle espressioni di query di Visual Basic | Ulteriori informazioni |
---|---|---|---|
OrderBy | Ordina i valori in ordine crescente. | Order By |
Enumerable.OrderBy Queryable.OrderBy |
OrderByDescending | Ordina i valori in ordine decrescente. | Order By … Descending |
Enumerable.OrderByDescending Queryable.OrderByDescending |
ThenBy | Esegue un ordinamento secondario crescente. | Order By …, … |
Enumerable.ThenBy Queryable.ThenBy |
ThenByDescending | Esegue un ordinamento secondario decrescente. | Order By …, … Descending |
Enumerable.ThenByDescending Queryable.ThenByDescending |
Storna | Inverte l'ordine degli elementi in una Collection. | Non applicabile. | Enumerable.Reverse Queryable.Reverse |
Esempi di sintassi delle espressioni di query
Esempi di ordinamento primario
Ordinamento primario crescente
Nell'esempio seguente viene illustrato come usare la clausola Order By
in una query LINQ per ordinare le stringhe in una matrice in base alla lunghezza di stringa, in ordine crescente.
Dim words = {"the", "quick", "brown", "fox", "jumps"}
Dim sortQuery = From word In words
Order By word.Length
Select word
Dim sb As New System.Text.StringBuilder()
For Each str As String In sortQuery
sb.AppendLine(str)
Next
' Display the results.
MsgBox(sb.ToString())
' This code produces the following output:
' the
' fox
' quick
' brown
' jumps
Ordinamento primario decrescente
Nell'esempio seguente viene illustrato come usare la clausola Order By Descending
in una query LINQ per ordinare le stringhe in base alla prima lettera, in ordine decrescente.
Dim words = {"the", "quick", "brown", "fox", "jumps"}
Dim sortQuery = From word In words
Order By word.Substring(0, 1) Descending
Select word
Dim sb As New System.Text.StringBuilder()
For Each str As String In sortQuery
sb.AppendLine(str)
Next
' Display the results.
MsgBox(sb.ToString())
' This code produces the following output:
' the
' quick
' jumps
' fox
' brown
Esempi di ordinamento secondario
Ordinamento secondario crescente
Nell'esempio seguente viene illustrato come usare la clausola Order By
in una query LINQ per eseguire un ordinamento primario e secondario delle stringhe in una matrice. Le stringhe vengono ordinate prima in base alla lunghezza e poi in base alla prima lettera della stringa, in ordine crescente.
Dim words = {"the", "quick", "brown", "fox", "jumps"}
Dim sortQuery = From word In words
Order By word.Length, word.Substring(0, 1)
Select word
Dim sb As New System.Text.StringBuilder()
For Each str As String In sortQuery
sb.AppendLine(str)
Next
' Display the results.
MsgBox(sb.ToString())
' This code produces the following output:
' fox
' the
' brown
' jumps
' quick
Ordinamento secondario in ordine decrescente
L'esempio seguente illustra come usare la clausola Order By Descending
in una query LINQ per eseguire un ordinamento primario, in ordine crescente, e un ordinamento secondario, in ordine decrescente. Le stringhe vengono ordinate principalmente in base alla lunghezza e poi in base alla prima lettera della stringa.
Dim words = {"the", "quick", "brown", "fox", "jumps"}
Dim sortQuery = From word In words
Order By word.Length, word.Substring(0, 1) Descending
Select word
Dim sb As New System.Text.StringBuilder()
For Each str As String In sortQuery
sb.AppendLine(str)
Next
' Display the results.
MsgBox(sb.ToString())
' This code produces the following output:
' fox
' the
' quick
' jumps
' brown