困惑于多年来填充ComboBox

时间:2015-02-25 18:48:47

标签: c# winforms

我正在开发一个Windows项目,我有一年的ComboBox应该包含从1910年到现在的年份。这是我的代码

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

但范围不是在1910年到今年之间。相反它在1910年到3924年之间。我在这里做错了什么?

1 个答案:

答案 0 :(得分:6)

Enumerable.Range中的第二个参数是 要生成的整数 ,而不是范围的包含上限。以下是此方法的签名:

Range(int start, int count)

因此,您只需将last - startlast - start + 1作为第二个参数传递,具体取决于您是否要查看序列中的最后一个整数。 (感谢@juharr发表评论)

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

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