困惑于多年来填充ComboBox

use*_*078 3 c# winforms

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

  comboboxYears.DataSource = Enumerable.Range(1910, DateTime.Now.Year).ToList();
Run Code Online (Sandbox Code Playgroud)

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

Far*_*yev 6

所述第二参数Enumerable.Range是所述整数的数目,以产生,而不是包括上限的范围内的.这是此方法的签名:

Range(int start, int count)
Run Code Online (Sandbox Code Playgroud)

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

所以,将代码更改为:

comboboxYears.DataSource = Enumerable.Range(1910, DateTime.Now.Year - 1910 + 1).ToList();
Run Code Online (Sandbox Code Playgroud)