Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 理解LINQ查询-按升序排序_C#_Linq - Fatal编程技术网

C# 理解LINQ查询-按升序排序

C# 理解LINQ查询-按升序排序,c#,linq,C#,Linq,我不明白为什么代码A是正确的,代码B是错误的: 代码A IEnumerable<decimal> loanQuery = from amount in loanAmounts where amount % 2 == 0 orderby amount select ascending amount //this line IEnumerable loanQuery= 来自贷款金额 其中金额%2==0 订单金额 选择递增金额//此行 代码B(不正确) IEnumerable lo

我不明白为什么代码A是正确的,代码B是错误的:

代码A

IEnumerable<decimal> loanQuery = 
from amount in loanAmounts
where amount % 2 == 0
orderby amount 
select ascending amount //this line
IEnumerable loanQuery=
来自贷款金额
其中金额%2==0
订单金额
选择递增金额//此行
代码B(不正确)

IEnumerable loanQuery=
来自贷款金额
其中金额%2==0
选择金额
按升序金额排序
由于很多人的回答都不正确,我现在发布了正确的代码:

IEnumerable<decimal> loanQuery = 
from amount in loanAmounts
where amount % 2 == 0
orderby amount ascending
select amount
IEnumerable loanQuery=
来自贷款金额
其中金额%2==0
按金额递增排序
选择金额

简而言之:它是语法所必需的。请参阅Microsoft文档

查询表达式必须以from子句开头,并且必须以 select或group子句


LINQ查询不是SQL查询,因此有自己的语法规则。您必须遵循以下顺序:

FROM     
WHERE      
ORDER BY     
SELECT      
GROUP BY
这与无法编写SQL语句的原因相同:

SELECT * WHERE i=2 FROM tableName
但我必须写作

SELECT * FROM tableName WHERE i=2
,您可以看到关键字的正确顺序

查询表达式必须以from子句开头,并且必须以 select或group子句。在第一个from子句和最后一个from子句之间 select或group子句,它可以包含一个或多个可选的 子句:where、orderby、join、let甚至附加from子句。 您还可以使用into关键字来启用联接或连接的结果 group子句用作中其他查询子句的源 相同的查询表达式


因为您需要使用select完成查询。编程语言中有一种称为语法的东西如果您学习了Linq基础知识,您应该已经理解了这一点,我建议您阅读一本关于Linq的教程/书籍,10页后您就会明白为什么它不正确。这两个代码都不正确,原因
升序
选择之后是无效的表达式项。谢谢。这很有帮助。我一定是在文件中漏掉了。
SELECT * FROM tableName WHERE i=2