Řazení dat (Visual Basic)

Operace řazení objedná prvky sekvence na základě jednoho nebo více atributů. Prvním kritériem řazení je primární řazení prvků. Zadáním druhého kritéria řazení můžete řadit prvky v rámci každé primární skupiny řazení.

Následující obrázek znázorňuje výsledky abecední operace řazení v posloupnosti znaků.

Graphic that shows an alphabetical sort operation.

Standardní metody operátoru dotazu, které seřadí data, jsou uvedeny v následující části.

Metody

Název metody Popis Syntaxe výrazů dotazu jazyka Visual Basic Další informace
OrderBy Seřadí hodnoty ve vzestupném pořadí. Order By Enumerable.OrderBy

Queryable.OrderBy
Orderbydescending Seřadí hodnoty v sestupném pořadí. Order By … Descending Enumerable.OrderByDescending

Queryable.OrderByDescending
Thenby Provede sekundární řazení ve vzestupném pořadí. Order By …, … Enumerable.ThenBy

Queryable.ThenBy
Thenbydescending Provede sekundární řazení v sestupném pořadí. Order By …, … Descending Enumerable.ThenByDescending

Queryable.ThenByDescending
Stornovat Vrátí pořadí prvků v kolekci. Nevztahuje se. Enumerable.Reverse

Queryable.Reverse

Příklady syntaxe výrazů dotazů

Příklady primárního řazení

Primární vzestupné řazení

Následující příklad ukazuje použití Order By klauzule v dotazu LINQ k seřazení řetězců v poli podle délky řetězce ve vzestupném pořadí.

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ární sestupné řazení

Další příklad ukazuje použití Order By Descending klauzule v dotazu LINQ k seřazení řetězců podle prvního písmena v sestupném pořadí.

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

Příklady sekundárního řazení

Sekundární vzestupné řazení

Následující příklad ukazuje použití Order By klauzule v dotazu LINQ k provedení primárního a sekundárního řazení řetězců v poli. Řetězce jsou seřazeny primárně podle délky a sekundy podle prvního písmena řetězce, a to jak ve vzestupném pořadí.

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ární sestupné řazení

Další příklad ukazuje použití Order By Descending klauzule v dotazu LINQ k provedení primárního řazení, vzestupně a sekundárního řazení v sestupném pořadí. Řetězce jsou seřazeny primárně podle délky a sekundy podle prvního písmena řetězce.

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

Viz také