C#: Number Range в Combobox

Например, нам нужно положить в telerik-оподобный con­trol список из вот таких элементов:

<telerik:radcomboboxitem runat="server" text="2010" value="10" >

Такие штуки надо генерировать в одну строку:

private const int CC_VALID_YEARS_RANGE = 9;
....................................................................................
ddlYear.DataSource = Enumerable.Range(DateTime.Today.Year, CC_VALID_YEARS_RANGE)
                               .ToDictionary(item => item.ToString(),
                                             item => (item % 1000).ToString());
ddlYear.DataTextField = "Key";
ddlYear.DataValueField = "Value";
ddlYear.DataBind();

А если надо добавить ещё одну строку Year с пустым значением — нужно предварительно сбросить Dic­tio­nary в ToList() (получится List < Key­Val­ue­Pair < string, string > >) и сделать insert в 0-ой индекс. Дело в том, что Dic­tio­nary<> сам по себе не сортируется — соответственно, Insert-а в нём нет и fore­ach перебирает его в том же порядке, в каком элементы добавились.

private const int CC_VALID_YEARS_RANGE = 9;
....................................................................................
List <KeyValuePair<string, string>> yearsList =
              Enumerable.Range(DateTime.Today.Year, CC_VALID_YEARS_RANGE)
                        .ToDictionary(item => item.ToString(),
                                      item => (item % 1000).ToString()).ToList();
yearsList.Insert(0, new KeyValuePair < string,string > ("Year", String.Empty));
ddlYear.DataSource = yearsList;
ddlYear.DataTextField = "Key";
ddlYear.DataValueField = "Value";
ddlYear.DataBind();