Delen via


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.

Graphic that shows an alphabetical sort operation.

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

Zie ook