在LINQ的where子句中聚合

时间:2010-01-19 03:27:44

标签: .net linq linq-to-sql

我正在尝试编写一个LINQ语句,该语句仅选择具有最新rundate的表中的行。例如,如果我有一个包含RunDate(datetime)和Value(decimal)列的表,那么通过sql完成此操作的一种方法可能如下所示:

SELECT Value
FROM Table
WHERE RunDate = (SELECT MAX(RunDate) FROM Table)

有没有办法在LINQ中执行此操作?谢谢

2 个答案:

答案 0 :(得分:3)

如果你想要行:

var rows = Table.Where(row => row.RunDate == Table.Max(r => r.RunDate));

如果您只想要值:

var values = Table.Where(row => row.RunDate == Table.Max(r => r.RunDate))
                  .Select(row => row.Value);

答案 1 :(得分:0)

Table.OrderByDescending(row=>row.RunDate).Take(1); 
相关问题