Udostępnij za pośrednictwem


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ż