困惑于如何用年份填充下拉框(ComboBox)

3

我正在进行一个Windows项目,我有一个年份下拉框,应该包含1910年到现在的年份。这是我的代码:

  comboboxYears.DataSource = Enumerable.Range(1910, DateTime.Now.Year).ToList();

但范围不是从1910年到现在,而是从1910年到3924年。我这里做错了什么?


2
Enumerable.Range期望第二个参数是count而不是end。当前的年份是2015,所以它将使用1910+2015个项目进行填充。 - Icemanind
1个回答

6
Enumerable.Range 方法中的第二个参数是要生成的整数数量,而不是范围的包括上限。这是该方法的签名:
Range(int start, int count)

因此,你只需要根据你是否想看到序列中的最后一个整数,将 last - startlast - start + 1 作为第二个参数传递即可。(感谢@juharr 的评论)

所以,请将你的代码更改为:

comboboxYears.DataSource = Enumerable.Range(1910, DateTime.Now.Year - 1910 + 1).ToList();

实际上,假设 OP 想要在下拉列表中显示当前年份,应该是 DateTime.Now.Year - 1910 + 1 - juharr

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接