我正在进行一个Windows项目,我有一个年份下拉框,应该包含1910年到现在的年份。这是我的代码:
comboboxYears.DataSource = Enumerable.Range(1910, DateTime.Now.Year).ToList();
但范围不是从1910年到现在,而是从1910年到3924年。我这里做错了什么?
Enumerable.Range
方法中的第二个参数是要生成的整数数量,而不是范围的包括上限。这是该方法的签名:Range(int start, int count)
因此,你只需要根据你是否想看到序列中的最后一个整数,将 last - start
或 last - start + 1
作为第二个参数传递即可。(感谢@juharr 的评论)
所以,请将你的代码更改为:
comboboxYears.DataSource = Enumerable.Range(1910, DateTime.Now.Year - 1910 + 1).ToList();
DateTime.Now.Year - 1910 + 1
。 - juharr
count
而不是end
。当前的年份是2015,所以它将使用1910+2015个项目进行填充。 - Icemanind