对数据进行排序 (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

请参阅