C# 用当前日期之后的30个日期填充列表框

C# 用当前日期之后的30个日期填充列表框,c#,visual-studio-2015,C#,Visual Studio 2015,我正在尝试从今天开始填充我的列表框,直到接下来的30天。我的当前代码从当前月份填充我的文本框。我如何只获取今天到接下来30天的日期值 int year = 2018; int month = 2; DateTime date = new DateTime(year, month, 1); //DateTime Today = DateTime.Today; //DateTime expiryDate = Today.AddDays(30); do { date = date.AddD

我正在尝试从今天开始填充我的列表框,直到接下来的30天。我的当前代码从当前月份填充我的文本框。我如何只获取今天到接下来30天的日期值

int year = 2018;
int month = 2;

DateTime date = new DateTime(year, month, 1);
//DateTime Today = DateTime.Today;
//DateTime expiryDate = Today.AddDays(30);
do
{

    date = date.AddDays(1);
    var dateonly = date.ToShortDateString();
    listBox1.Items.Add(dateonly);
}
while (date.Month == month);

因此,您知道限制(此处为30天)。那为什么不用计数器来做这样的事情呢

DateTime currentDate = DateTime.Now;
for (int dayCount = 1; dayCount <= 30; dayCount++)
{
   var date = currentDate.AddDays(dayCount);
    var dateonly = date.ToShortDateString();
    listBox1.Items.Add(dateonly);
}
DateTime currentDate=DateTime.Now;

对于(int dayCount=1;dayCount,可以使用可枚举范围:

    DateTime date = new DateTime(year, month, 1);
    Enumerable.Range(0, 30).ToList().ForEach(day => listBox1.Items.Add(date.AddDays(day).ToShortDateString()));

我认为在提出此类问题之前,您应该先了解循环的基本知识。
Enumerable.Range(1,30)
…以及为什么要使用
of type
Enumerable.Range
的返回值是
IEnumerable
已经?Enumerable.Range(0,30)返回0到29之间的30个值。因为我需要ForEach,它仅适用于列表。OP希望在30天内为循环中的每个值添加1天。0-29不正确,是吗?是的,ForEach仅在调用ToList后可用,但您不需要键入。谢谢您的回答