了解LINQ查询-顺序升序
本文关键字:顺序 升序 查询 LINQ 了解 | 更新日期: 2023-09-27 18:12:09
我不明白为什么代码A是正确的而代码B是错误的:
代码IEnumerable<decimal> loanQuery =
from amount in loanAmounts
where amount % 2 == 0
orderby amount
select ascending amount //this line
代码B(错误)
IEnumerable<decimal> loanQuery =
from amount in loanAmounts
where amount % 2 == 0
select amount
orderby ascending amount
由于很多人的回答都是错误的,我现在贴出了正确的代码:
IEnumerable<decimal> loanQuery =
from amount in loanAmounts
where amount % 2 == 0
orderby amount ascending
select amount
LINQ-Query不是SQL-Query,所以有自己的语法规则。你必须按照顺序:
FROM
WHERE
ORDER BY
SELECT
GROUP BY
这和你不能写sql语句的原因是一样的:
SELECT * WHERE i=2 FROM tableName
但必须写
SELECT * FROM tableName WHERE i=2
总之:这是语法所要求的。请看这里的微软文档
查询表达式必须以from子句开始,以A结尾选择或分组子句。
从MSDN文档中,您可以看到关键字
的正确顺序查询表达式必须以from子句开始,以A结尾选择或分组子句。在第一个from从句和最后一个从句之间选择或分组子句,它可以包含一个或多个这些可选的子句:where, order, join, let,甚至extra from子句。还可以使用into关键字来启用连接或中的其他查询子句作为源相同的查询表达式