有什么方法可以动态获取DateTime.Now.AddDays(0..7)列表?

GON*_*ale 5 .net c# optimization performance

我能想到的最有效和最典型的解决方案是:

var dates = new DateTime[7];
for (int i = 0; i < 7; i++)
  dates[i] = DateTime.Now.AddDays(i);
Run Code Online (Sandbox Code Playgroud)

这将在数​​组中返回七(7)个日期,这是我想要的结果.我认为红宝石可以做这样的事情,只需指定点,但我不记得了.

但是,有更有效的方法吗?或者有没有办法用linq实现这个(可能通过Aggregate方法?),如果有的话,即使它不是最有效的解决方案,我也会很好奇.

理想情况下,它不需要您为所需的"时间"量重新声明任何对象实例,并允许您只指定DateTime.Now一次,并且只需要一次指定数组/列表中的项目数.

谢谢

Fre*_*örk 9

我会使用Enumerable.Range,这在生成数据序列时非常方便:

var now = DateTime.Now;
var dates = Enumerable.Range(0, 7).Select(n => now.AddDays(n)).ToArray();
Run Code Online (Sandbox Code Playgroud)