2016-07-07 100 views

回答

2

確保您可以替換

Enumerable.Range(1, 31).ToDictionary(x => x, x => x).ToList<KeyValuePair<int, int>>(); 

Enumerable.Range(1, 31).Select(x => new KeyValuePair<int, int>(x,x)).ToList(); 
+0

拋出一個異常'Complex DataBinding接受IList或IListSource作爲數據源' –

+0

@ Ivan-MarkDebono添加了'.ToList()' – fubo

3

當然,只要使用Select

cboDay.DataSource = Enumerable.Range(1, 31) 
    .Select(x => new KeyValuePair<int, int>(x, x)) 
    .ToList(); 

目前尚不清楚是否你需要這是List<T>,但是這樣做可以保證它只會被評估一次,並且可能允許您在使用的任何優化。

有沒有必要創建一個Dictionary - 事實上,通過這樣做,你目前不保證排序,而上面的代碼肯定會給你1-31的順序。

相關問題