Gegevens sorteren (Visual Basic)
Met een sorteerbewerking worden de elementen van een reeks gesorteerd op basis van een of meer kenmerken. Het eerste sorteercriterium voert een primaire sortering uit op de elementen. Door een tweede sorteercriterium op te geven, kunt u de elementen in elke primaire sorteergroep sorteren.
In de volgende afbeelding ziet u de resultaten van een alfabetische sorteerbewerking op een reeks tekens.
De standaardqueryoperatormethoden waarmee gegevens worden gesorteerd, worden weergegeven in de volgende sectie.
Methoden
Methodenaam | Beschrijving | Syntaxis van Visual Basic-queryexpressie | Meer informatie |
---|---|---|---|
Orderby | Sorteert waarden in oplopende volgorde. | Order By |
Enumerable.OrderBy Queryable.OrderBy |
OrderByDescending | Sorteert waarden in aflopende volgorde. | Order By … Descending |
Enumerable.OrderByDescending Queryable.OrderByDescending |
ThenBy | Voert een secundaire sortering in oplopende volgorde uit. | Order By …, … |
Enumerable.ThenBy Queryable.ThenBy |
ThenByDescending | Voert een secundaire sortering in aflopende volgorde uit. | Order By …, … Descending |
Enumerable.ThenByDescending Queryable.ThenByDescending |
Terugboeken | Hiermee wordt de volgorde van de elementen in een verzameling omgekeerd. | Niet van toepassing. | Enumerable.Reverse Queryable.Reverse |
Voorbeelden van syntaxis van query-expressie
Voorbeelden van primaire sortering
Primaire oplopend sorteren
In het volgende voorbeeld ziet u hoe u de Order By
component in een LINQ-query gebruikt om de tekenreeksen in een matrix te sorteren op tekenreekslengte, in oplopende volgorde.
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
Primaire aflopende sorteervolgorde
In het volgende voorbeeld ziet u hoe u de Order By Descending
component in een LINQ-query gebruikt om de tekenreeksen te sorteren op de eerste letter, in aflopende volgorde.
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
Voorbeelden van secundaire sortering
Secundair oplopend sorteren
In het volgende voorbeeld ziet u hoe u de Order By
component in een LINQ-query gebruikt om een primaire en secundaire sortering van de tekenreeksen in een matrix uit te voeren. De tekenreeksen worden voornamelijk gesorteerd op lengte en secundair op de eerste letter van de tekenreeks, beide in oplopende volgorde.
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
Secundair aflopend sorteren
In het volgende voorbeeld ziet u hoe u de Order By Descending
component in een LINQ-query gebruikt om een primaire sortering, in oplopende volgorde en een secundaire sortering, in aflopende volgorde uit te voeren. De tekenreeksen worden voornamelijk gesorteerd op lengte en secundair op de eerste letter van de tekenreeks.
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