Dela via


Sorteringsdata (Visual Basic)

En sorteringsåtgärd beställer elementen i en sekvens baserat på ett eller flera attribut. Det första sorteringskriteriet utför en primär sortering av elementen. Genom att ange ett andra sorteringsvillkor kan du sortera elementen i varje primär sorteringsgrupp.

Följande bild visar resultatet av en alfabetisk sorteringsåtgärd på en sekvens med tecken.

Graphic that shows an alphabetical sort operation.

Standardmetoderna för frågeoperatorer som sorterar data visas i följande avsnitt.

Metoder

Metodnamn beskrivning Syntax för Visual Basic-frågeuttryck Mer information
OrderBy Sorterar värden i stigande ordning. Order By Enumerable.OrderBy

Queryable.OrderBy
OrderByDescending Sorterar värden i fallande ordning. Order By … Descending Enumerable.OrderByDescending

Queryable.OrderByDescending
ThenBy Utför en sekundär sortering i stigande ordning. Order By …, … Enumerable.ThenBy

Queryable.ThenBy
ThenByDescending Utför en sekundär sortering i fallande ordning. Order By …, … Descending Enumerable.ThenByDescending

Queryable.ThenByDescending
Återför Ändrar ordningen på elementen i en samling. Ej tillämpbart. Enumerable.Reverse

Queryable.Reverse

Exempel på frågeuttryckssyntax

Primära sorteringsexempel

Primär stigande sortering

I följande exempel visas hur du använder Order By -satsen i en LINQ-fråga för att sortera strängarna i en matris efter stränglängd, i stigande ordning.

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

Primär fallande sortering

Nästa exempel visar hur du använder Order By Descending -satsen i en LINQ-fråga för att sortera strängarna efter deras första bokstav, i fallande ordning.

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

Sekundära sorteringsexempel

Sekundär stigande sortering

I följande exempel visas hur du använder Order By -satsen i en LINQ-fråga för att utföra en primär och sekundär typ av strängarna i en matris. Strängarna sorteras främst efter längd och i andra hand efter den första bokstaven i strängen, båda i stigande ordning.

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

Sekundär fallande sortering

Nästa exempel visar hur du använder Order By Descending -satsen i en LINQ-fråga för att utföra en primär sortering, i stigande ordning och en sekundär sortering, i fallande ordning. Strängarna sorteras främst efter längd och i andra hand efter den första bokstaven i strängen.

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

Se även