Reputation: 3239
I am trying to write a LINQ statement which selects only the rows in a table with the most recent rundate. For example, if I had a table with columns RunDate(datetime) and Value(decimal) one way of accomplishing this through sql might look like:
SELECT Value
FROM Table
WHERE RunDate = (SELECT MAX(RunDate) FROM Table)
Is there a way to do this in LINQ? Thank you
Upvotes: 1
Views: 1290
Reputation: 241641
If you want the rows:
var rows = Table.Where(row => row.RunDate == Table.Max(r => r.RunDate));
If you just want the values:
var values = Table.Where(row => row.RunDate == Table.Max(r => r.RunDate))
.Select(row => row.Value);
Upvotes: 3