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