共用方式為


排序資料 (Visual Basic)

排序作業會根據一個或多個屬性來排序序列的項目。 第一個排序準則會執行元素的主要排序; 您可以藉由指定第二個排序準則來排序每一個主要排序群組內的元素。

下圖顯示對一系列字元執行字母順序排序作業的結果。

Graphic that shows an alphabetical sort operation.

下節列出可排序資料的標準查詢運算子方法。

方法

方法名稱 描述 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

另請參閱