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.
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