排序資料 (Visual Basic)
排序作業會根據一個或多個屬性來排序序列的項目。 第一個排序準則會執行元素的主要排序; 您可以藉由指定第二個排序準則來排序每一個主要排序群組內的元素。
下圖顯示對一系列字元執行字母順序排序作業的結果。
下節列出可排序資料的標準查詢運算子方法。
方法
方法名稱 | 描述 | Visual Basic 查詢運算式語法 | 相關資訊 |
---|---|---|---|
OrderBy | 依遞增順序排序值。 | Order By |
Enumerable.OrderBy Queryable.OrderBy |
OrderByDescending | 依遞減順序排序值。 | Order By … Descending |
Enumerable.OrderByDescending Queryable.OrderByDescending |
ThenBy | 依遞增順序執行次要排序。 | Order By …, … |
Enumerable.ThenBy Queryable.ThenBy |
ThenByDescending | 依遞減順序執行次要排序。 | Order By …, … Descending |
Enumerable.ThenByDescending Queryable.ThenByDescending |
Reverse | 反轉集合中項目的順序。 | 不適用。 | Enumerable.Reverse Queryable.Reverse |
查詢運算式語法範例
主要排序範例
主要遞增排序
下列範例示範如何在 LINQ 查詢中使用 Order By
子句,依字串長度以遞增順序來排序陣列中的字串。
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
主要遞減排序
下一個範例示範如何在 LINQ 查詢中使用 Order By Descending
子句,依其第一個字母以遞減順序來排序字串。
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
次要排序範例
次要遞增排序
下列範例示範如何在 LINQ 查詢中使用 Order By
子句,對陣列中的字串執行主要和次要排序。 字串主要是依長度進行排序,其次依字串的第一個字母進行排序,而兩者都是遞增排序。
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
次要遞減排序
下一個範例示範如何在 LINQ 查詢中使用 Order By Descending
子句,執行依遞增順序的主要排序以及依遞減順序的次要排序。 字串主要是依長度進行排序,其次依字串的第一個字母進行排序。
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