Order By 子句 (Visual Basic)

指定查询结果的排序顺序。

语法

Order By orderExp1 [ Ascending | Descending ] [, orderExp2 [...] ]

部件

orderExp1 必填。 当前查询结果中的一个或多个字段,用于标识如何对返回的值进行排序。 字段名称必须用逗号(,)分隔。 可以使用或Descending关键字将每个字段标识为升序或降序Ascending排序。 Ascending如果未指定或Descending关键字,则默认排序顺序为升序。 排序顺序字段优先于从左到右。

注解

可以使用子 Order By 句对查询结果进行排序。 子 Order By 句只能基于当前作用域的范围变量对结果进行排序。 例如,该 Select 子句在查询表达式中引入了一个新的作用域,其中包含该作用域的新迭代变量。 在查询中的子句之前 Select 定义的范围变量在子句之后 Select 不可用。 因此,如果要按子句中不可用的Select字段对结果进行排序,则必须在子句之前Select放置子Order By句。 需要执行此作的一个示例是,如果要按未作为结果的一部分返回的字段对查询进行排序。

字段的升序和降序由字段数据类型的接口实现 IComparable 决定。 如果数据类型未实现 IComparable 接口,则忽略排序顺序。

示例 1

以下查询表达式使用子From句声明集合的范围books变量book。 子 Order By 句按升序(默认值)按价格对查询结果进行排序。 具有相同价格的书籍按标题按升序排序。 该 Select 子句选择 TitlePrice 属性作为查询返回的值。

Dim titlesAscendingPrice = From book In books
                           Order By book.Price, book.Title
                           Select book.Title, book.Price

示例 2

以下查询表达式使用 Order By 子句按降序对查询结果进行排序。 具有相同价格的书籍按标题按升序排序。

Dim titlesDescendingPrice = From book In books
                            Order By book.Price Descending, book.Title
                            Select book.Title, book.Price

示例 3

以下查询表达式使用子 Select 句来选择书籍标题、价格、发布日期和作者。 然后,它将填充Title新作用域的范围变量的字段PricePublishDateAuthor字段。 子 Order By 句按作者名称、书名和价格对新范围变量进行排序。 每列按默认顺序排序(升序)。

Dim bookOrders =
  From book In books
  Select book.Title, book.Price, book.PublishDate, book.Author
  Order By Author, Title, Price

另请参阅