我正在尝试编写一个LINQ语句,该语句仅选择具有最新rundate的表中的行。例如,如果我有一个包含RunDate(datetime)和Value(decimal)列的表,那么通过sql完成此操作的一种方法可能如下所示:
SELECT Value
FROM Table
WHERE RunDate = (SELECT MAX(RunDate) FROM Table)
有没有办法在LINQ中执行此操作?谢谢
答案 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);