C# 如何在单个LinQ查询中编写OrderByDescending和where子句

C# 如何在单个LinQ查询中编写OrderByDescending和where子句,c#,linq,C#,Linq,我想显示特定设备ID的最新更新设备值。当使用OrderByDescending和Where编写LinQ查询时,我得到了一个错误 无法执行文本选择:CS1061“int”不包含 “OrderByDescending”和无扩展方法的定义 接受类型为“int”的第一个参数的“OrderByDescending”可以是 发现 数据类型 Id - int32 UpdatedDate- datetime 林克 您需要为谓词插入括号,即where子句 完全使用查询语法或lambda表达式。以下方面应起作用:

我想显示特定
设备ID
的最新
更新设备值。当使用
OrderByDescending
Where
编写LinQ查询时,我得到了一个错误

无法执行文本选择:CS1061“int”不包含 “OrderByDescending”和无扩展方法的定义 接受类型为“int”的第一个参数的“OrderByDescending”可以是 发现

数据类型

Id - int32
UpdatedDate- datetime
林克


您需要为谓词插入括号,即where子句

完全使用查询语法或lambda表达式。以下方面应起作用:

(from a in Attendances
where a.Deviceid == 1 
select a)
.OrderByDescending(x=>x.Id)
.Take(1)
.Select(x=>x.UpdatedDate)
或使用lambda表达式语法:

Attendances.Where(a =>  a.Deviceid == 1) 
.OrderByDescending(x=>x.Id)
.Take(1)
.Select(a => a.UpdatedDate);
旁注:

如果要返回单个项目,则可以使用
FirstOrDefault()
First()
,您可以了解两者的区别:

var latestDate = Attendances.Where(a =>  a.Deviceid == 1) 
                      .OrderByDescending(x=>x.Id)
                      .FirstOrDefault()
                      ?.UpdatedDate;

您需要为谓词插入括号,即where子句

完全使用查询语法或lambda表达式。以下方面应起作用:

(from a in Attendances
where a.Deviceid == 1 
select a)
.OrderByDescending(x=>x.Id)
.Take(1)
.Select(x=>x.UpdatedDate)
或使用lambda表达式语法:

Attendances.Where(a =>  a.Deviceid == 1) 
.OrderByDescending(x=>x.Id)
.Take(1)
.Select(a => a.UpdatedDate);
旁注:

如果要返回单个项目,则可以使用
FirstOrDefault()
First()
,您可以了解两者的区别:

var latestDate = Attendances.Where(a =>  a.Deviceid == 1) 
                      .OrderByDescending(x=>x.Id)
                      .FirstOrDefault()
                      ?.UpdatedDate;

您混合了两个LINQ符号(查询表达式和lambda语法),我正在尝试用linqpad编写。您混合了两个LINQ符号(查询表达式和lambda语法)我试图在linqpad.1st选项中写入givng错误-CS1061“bool”不包含“OrderByDescending”的定义,并且找不到接受类型为“bool”的第一个参数的扩展方法“OrderByDescending”(按F4添加using指令或程序集引用)第二个选项给出错误-无法执行文本选择:)或表达式结尾expectedthird选项给出空值,0条记录getting@EhsanSajjad:两个查询都返回
IEnumerable
,而不是
DateTime
Take(1)
并不能取代
Single
/
First
@Dennis,Dennis说用户想要一个
日期时间
?虽然
.Take(1)
感觉不对,但这是OP写的,所以可能是故意的?第一个选项givng error-CS1061“bool”不包含“OrderByDescending”的定义,并且找不到接受类型为“bool”的第一个参数的扩展方法“OrderByDescending”(按F4添加using指令或程序集引用)第二个选项给出错误-无法执行文本选择:)或表达式结尾expectedthird选项给出空值,0条记录getting@EhsanSajjad:两个查询都返回
IEnumerable
,而不是
DateTime
Take(1)
并不能取代
Single
/
First
@Dennis,Dennis说用户想要一个
日期时间
?虽然
.Take(1)
感觉不对,但这是OP写的,所以可能是有意的?