我在这里做了一些非常愚蠢的事情,fromDate值始终保持原样。
public List<String> GetDates(DateTime fromDate, DateTime toDate)
{
List<String> Dates = new List<String>();
while (fromDate <= toDate)
{
Dates.Add(fromDate.ToShortDateString());
fromDate.AddDays(1);
}
return Dates;
}
我无法弄清楚原因,请指教。
答案 0 :(得分:4)
您需要分配到fromDate
,AddDays()
不会修改调用它的实例:
fromDate = fromDate.AddDays(1);
答案 1 :(得分:3)
如果你看一下.AddDays
的方法描述,你会发现它实际上返回了一个datetime对象,它实际上并没有修改调用AddDays的变量。
您可以通过以下方式获得所需的行为:
fromDate = fromDate.AddDays(1);
在以下网址查看更多信息:
https://msdn.microsoft.com/en-us/library/system.datetime.adddays%28v=vs.110%29.aspx
答案 2 :(得分:2)
MSDN Help for AddDays在“备注”下的页面末尾有以下句子值得注意:
此方法不会更改此DateTime的值。相反,它 返回一个新的DateTime,其值是此操作的结果。
只需存储返回的DateTime对象即可。
fromDate = fromDate.AddDays(1);