Freigeben über


Sortieren von Daten (Visual Basic)

Bei einem Sortiervorgang werden die Elemente einer Sequenz auf Grundlage eines oder mehrerer Attribute sortiert. Mit dem ersten Sortierkriterium wird eine primäre Sortierung der Elemente ausgeführt. Sie können die Elemente innerhalb jeder primären Sortiergruppe sortieren, indem Sie ein zweites Sortierkriterium angeben.

Die folgende Abbildung zeigt das Ergebnis eines alphabetischen Sortiervorgangs bei einer Zeichensequenz.

Graphic that shows an alphabetical sort operation.

Die Methoden des Standardabfrageoperators, die Daten sortieren, sind im folgenden Abschnitt aufgeführt.

Methoden

Methodenname Beschreibung Visual Basic-Abfrageausdruckssyntax Weitere Informationen
OrderBy Sortiert Werte in aufsteigender Reihenfolge Order By Enumerable.OrderBy

Queryable.OrderBy
OrderByDescending Sortiert Werte in absteigender Reihenfolge Order By … Descending Enumerable.OrderByDescending

Queryable.OrderByDescending
ThenBy Führt eine sekundäre Sortierung in aufsteigender Reihenfolge durch Order By …, … Enumerable.ThenBy

Queryable.ThenBy
ThenByDescending Führt eine sekundäre Sortierung in absteigender Reihenfolge durch Order By …, … Descending Enumerable.ThenByDescending

Queryable.ThenByDescending
Reverse Kehrt die Reihenfolge der Elemente in einer Auflistung um Nicht zutreffend. Enumerable.Reverse

Queryable.Reverse

Beispiele für die Abfrageausdruckssyntax

Primäre Sortierungsbeispiele

Primäre aufsteigende Sortierung

Im folgenden Beispiel wird veranschaulicht, wie man die Order By-Klausel in einer LINQ-Abfrage verwendet, um die Zeichenfolgen in einem Array in aufsteigender Reihenfolge nach der Länge der Zeichenfolgen zu sortieren.

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äre absteigende Sortierung

Im nächsten Beispiel wird veranschaulicht, wie man die Order By Descending-Klausel in einer LINQ-Abfrage verwendet, um die Zeichenfolgen in absteigender Reihenfolge nach ihrem ersten Buchstaben zu sortieren.

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äre Sortierungsbeispiele

Sekundäre aufsteigende Sortierung

Im folgenden Beispiel wird veranschaulicht, wie man die Order By-Klausel in einer LINQ-Abfrage verwendet, um eine primäre und eine sekundäre Sortierung der Zeichenfolgen in einem Array durchzuführen. Die Zeichenfolgen werden primär nach der Länge und sekundär nach dem ersten Buchstaben der Zeichenfolge sortiert, beide Male in aufsteigender Reihenfolge.

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äre absteigende Sortierung

Im nächsten Beispiel wird gezeigt, wie man die Order By Descending-Klausel in einer LINQ-Abfrage verwendet, um eine primäre Sortierung in aufsteigender Reihenfolge und eine sekundäre Sortierung in absteigender Reihenfolge durchzuführen. Die Zeichenfolgen werden primär nach der Länge und sekundär nach dem ersten Buchstaben der Zeichenfolge sortiert.

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

Siehe auch