Вы можете сделать метод расширения следующим образом:
public static IEnumerable<DateTime> DaysUpTo(this DateTime startDate, DateTime endDate)
{
DateTime currentDate = startDate;
while (currentDate <= endDate)
{
yield return currentDate;
currentDate = currentDate.AddDays(1);
}
}
Затем вы можете использовать его так:
DateTime Today = DateTime.Now;
DateTime NextWeek = DateTime.Now.AddDays(7);
var weekDays = Today.DaysUpTo(NextWeek).ToList();
Или с примером, который вы использовали:
DateTime start = new DateTime(2010, 1, 1);
DateTime maxDate = new DateTime(2010, 1, 11);
List<DateTime> allDays = start.DaysUpTo(maxDate).ToList();
Редактировать:
Если вы действительно хотите реализацию LINQ, это также будет работать:
DateTime start = new DateTime(2010, 1, 1);
DateTime maxDate = new DateTime(2010, 1, 11);
List<DateTime> allDays = Enumerable
.Range(0, 1 +(maxDate - start).Days)
.Select( d=> start.AddDays(d))
.ToList();