Condividi tramite


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.

Graphic that shows an alphabetical sort operation.

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

Vedi anche