共用方式為


排序資料 (Visual Basic)

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

下圖顯示字元序列上依字母順序排序作業的結果。

顯示字母排序作業的圖形。

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

方法

方法名稱 說明 Visual Basic 查詢表達式語法 詳細資訊
排序依據 依遞增順序排序值。 Order By Enumerable.OrderBy

Queryable.OrderBy
依降序排序 依遞減順序排序值。 Order By … Descending Enumerable.OrderByDescending

Queryable.OrderByDescending
ThenBy 依遞增順序執行次要排序。 Order By …, … Enumerable.ThenBy

Queryable.ThenBy
ThenByDescending 依遞減順序執行次要排序。 Order By …, … Descending Enumerable.ThenByDescending

Queryable.ThenByDescending
倒轉 反轉集合中項目的順序。 不適用。 Enumerable.Reverse

Queryable.Reverse

查詢表達式語法範例

主要排序範例

主要遞增排序

下列範例示範如何使用 Order By LINQ 查詢中的 子句,以遞增順序依字串長度排序陣列中的字串。

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

主要遞減排序

下一個範例示範如何使用 Order By Descending LINQ 查詢中的 子句,以遞減順序依其第一個字母排序字串。

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

次要排序範例

次要遞增排序

下列範例示範如何使用 Order By LINQ 查詢中的 子句來執行數位中字串的主要和次要排序。 字串依長度排序為主,並次依字串的第一個字母排序,兩者皆為遞增順序。

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

另請參閱