Freigeben über


Sortieren von Daten (Visual Basic)

Ein Sortiervorgang sortiert die Elemente einer Sequenz basierend auf einem oder mehreren Attributen. Das erste Sortierkriterium führt eine primäre Sortierung der Elemente durch. Durch Angeben eines zweiten Sortierkriteriums können Sie die Elemente innerhalb jeder primären Sortiergruppe sortieren.

Die folgende Abbildung zeigt die Ergebnisse eines alphabetischen Sortiervorgangs für eine Abfolge von Zeichen.

Grafik, die einen alphabetischen Sortiervorgang zeigt.

Die Standardabfrageoperatormethoden, mit denen Daten sortiert werden, werden im folgenden Abschnitt aufgeführt.

Methodik

Methodenname BESCHREIBUNG Syntax des Visual Basic-Abfrageausdrucks Mehr Informationen
SortierenNach 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 aus. Order By …, … Enumerable.ThenBy

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

Queryable.ThenByDescending
Rückwärts Umkehrt die Reihenfolge der Elemente in einer Auflistung. Nicht zutreffend. Enumerable.Reverse

Queryable.Reverse

Beispiele für die Abfrageausdruckssyntax

Primäre Sortierbeispiele

Primäre aufsteigende Sortierung

Im folgenden Beispiel wird veranschaulicht, wie die Order By Klausel in einer LINQ-Abfrage verwendet wird, um die Zeichenfolgen in einem Array nach Zeichenfolgenlänge in aufsteigender Reihenfolge 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 die Order By Descending Klausel in einer LINQ-Abfrage verwendet wird, um die Zeichenfolgen nach ihrem ersten Buchstaben in absteigender Reihenfolge 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 Sortierbeispiele

Sekundäre aufsteigende Sortierung

Das folgende Beispiel veranschaulicht die Verwendung der Order By Klausel in einer LINQ-Abfrage zum Ausführen einer primären und sekundären Sortierung der Zeichenfolgen in einem Array. Die Zeichenfolgen werden hauptsächlich nach Länge und sekundär nach dem ersten Buchstaben der Zeichenfolge sortiert, beide 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

Das nächste Beispiel veranschaulicht, wie die Order By Descending Klausel in einer LINQ-Abfrage verwendet wird, um eine primäre Sortierung in aufsteigender Reihenfolge und eine sekundäre Sortierung in absteigender Reihenfolge durchzuführen. Die Zeichenfolgen werden primär nach 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