Используйте OrderByDescending
и возьмите первую запись:
initialBalance = ctx.DailyBalances
.OrderByDescending(c => c.DailyDate)
.Select(c => c.FinalBalance)
.FirstOrDefault();
Этот тип запроса оптимизирован в SQL Server, поэтому для него не требуется сортировка O (n log (n))весь столЕсли на DailyDate
есть индекс, он найдет последнюю строку в индексе, а без индекса он будет использовать оптимизированный алгоритм с именем Top N Sort
, который выполняется за линейное время.
Однако этот запрос будет O (n log (n)) в LINQ to Objects.