Sdílet prostřednictvím


Ř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ů.

Obrázek znázorňující abecední operaci řazení

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
SeřaditPodle Seřadí hodnoty ve vzestupném pořadí. Order By Enumerable.OrderBy

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

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

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

Queryable.ThenByDescending
Zpětný Vrátí pořadí prvků v kolekci. Nelze použít. 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 sekundárně podle prvního písmena řetězce, vždy 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 druhotně podle prvního písmena.

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é