2016-03-15 90 views
0

我有一個DropDownListyear選擇,我填寫以下默認值。For loop inside List <Object> {};

取而代之,是否有任何選擇使用for-loop來填充它,就像我在下面的代碼中給出的註釋一樣。

var yr = new List<Object> 
{ 
    new { value=0 ,text="--Select--"}, 
    new { value = 2015 , text = "2015" }, 
    new { value = 2016 , text = "2016" }, 
    new { value = 2017 , text = "2017" }, 
    new { value = 2018 , text = "2018" }, 
    new { value = 2019 , text = "2019" }, 
    new { value = 2020 , text = "2020" }, 
    //new { for(int i = 2010;i <= DateTime.Now.Year+5; i++) value = i , text = i }, 
}; 
ViewBag.Year = new SelectList(yr, "value", "text");  
+0

'名單'有一個 「添加」 的方法... –

+0

是 - 有一個Add方法爲好。 (列表是列表 ...) –

+1

您可以使用循環,但創建一個'SelectListItem'而不是'object'並將其分配給'ViewBag.Year' - 不需要'SelectList'構造函數。並在'DropDownListFor()'方法中添加'labelOption',而不是在控制器中。 –

回答

1

你可以初始化List與價值0通過集合初始化,然後使用for循環是這樣的:

var yr = new List<Object> {new {value = 0, text = "--Select--"}}; 
for (var i = 2015; i <= 2020; i++) 
{ 
    yr.Add(new { value = i, text = i.ToString() }); 
} 
0

這是否適合您?

List<object> l = new List<object>(); 
for (int i = 2015; i < 2020; i++) 
    l.Add(new { value = i, text = i }); 
0

是的,你可以使用方法列表的Add

for (int i = 2015; i < DateTime.Now.Year+5; i++) 
{ 
    yr.Add(new { value = i, text = i }); 
}