У меня есть метод, который возвращает прошедшие x дни, и в настоящее время он выполняет следующие действия:
var dates = new List<DateTime>();
for (int i = 0; i < numDays; i++)
{
dates.Add(DateTime.Today.AddDays(-i));
}
return dates;
Я чувствую, что должен быть более компактный способ сделать это, возможно, используя LINQ. Предложения? Кроме того, если я сохраню все как есть, будет ли DateTime.Today
таким, что это будет более эффективным, если я сохраню его в переменной вне цикла и затем вызову AddDays
для этого значения в цикле?
Редактировать: LINQ использует ленивый анализ, верно? Я получаю сумасшедшие образы в моей голове:
return DateTime.AllDaysInTheHistoryOfTimeEver.Where(day =>
day.BeforeOrOn(DateTime.Today) &&
day.After(DateTime.Today.AddDays(-numDays))
);