Sortowanie danych (Visual Basic)

Operacja sortowania porządkuje elementy sekwencji na podstawie co najmniej jednego atrybutu. Pierwsze kryterium sortowania wykonuje sortowanie podstawowe dla elementów. Określając drugie kryterium sortowania, można sortować elementy w każdej podstawowej grupie sortowania.

Poniższa ilustracja przedstawia wyniki operacji sortowania alfabetycznego w sekwencji znaków.

Graphic that shows an alphabetical sort operation.

Standardowe metody operatorów zapytań, które sortują dane, są wymienione w poniższej sekcji.

Metody

Nazwa metody opis Składnia wyrażeń zapytań języka Visual Basic Więcej informacji
Kolejność według Sortuje wartości w kolejności rosnącej. Order By Enumerable.OrderBy

Queryable.OrderBy
Orderbydescending Sortuje wartości w kolejności malejącej. Order By … Descending Enumerable.OrderByDescending

Queryable.OrderByDescending
Thenby Wykonuje sortowanie pomocnicze w kolejności rosnącej. Order By …, … Enumerable.ThenBy

Queryable.ThenBy
Thenbydescending Wykonuje sortowanie pomocnicze w kolejności malejącej. Order By …, … Descending Enumerable.ThenByDescending

Queryable.ThenByDescending
Wycofaj Odwraca kolejność elementów w kolekcji. Nie dotyczy. Enumerable.Reverse

Queryable.Reverse

Przykłady składni wyrażeń zapytania

Przykłady sortowania podstawowego

Podstawowy sortowanie rosnące

W poniższym przykładzie pokazano, jak używać Order By klauzuli w zapytaniu LINQ w celu sortowania ciągów w tablicy według długości ciągu w kolejności rosnącej.

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

Sortowanie malejące podstawowe

W następnym przykładzie pokazano, jak używać klauzuli Order By Descending w zapytaniu LINQ w celu sortowania ciągów według ich pierwszej litery w kolejności malejącej.

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

Przykłady sortowania pomocniczego

Pomocnicze sortowanie rosnące

W poniższym przykładzie pokazano, jak używać klauzuli Order By w zapytaniu LINQ w celu wykonania podstawowego i pomocniczego rodzaju ciągów w tablicy. Ciągi są sortowane głównie według długości i po drugie przez pierwszą literę ciągu, zarówno w kolejności rosnącej.

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

Pomocniczy sortowanie malejące

W następnym przykładzie pokazano, jak użyć Order By Descending klauzuli w zapytaniu LINQ w celu wykonania sortowania podstawowego w kolejności rosnącej i sortowania pomocniczego w kolejności malejącej. Ciągi są sortowane głównie według długości i po drugie przez pierwszą literę ciągu.

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

Zobacz też