qin*_*126 10 c# asp.net-mvc ienumerable drop-down-menu
我从Enum创建了一个下拉列表.
public enum Level
{
Beginner = 1,
Intermediate = 2,
Expert = 3
}
Run Code Online (Sandbox Code Playgroud)
这是我的扩展名.
public static SelectList ToSelectList<TEnum>(this TEnum enumObj)
{
IEnumerable<TEnum> values = Enum.GetValues(typeof(TEnum)).Cast<TEnum>();
var result = from TEnum e in values
select new { ID = (int)Enum.Parse(typeof(TEnum), e.ToString()), Name = e.ToString() };
var tempValue = new { ID = 0, Name = "-- Select --" };
return new SelectList(result, "Id", "Name", enumObj);
}
Run Code Online (Sandbox Code Playgroud)
我的问题是将antoher项插入IEnumerable.我只是想不出怎么做.有人可以修改我的代码,将"--select--"插入到顶部.
Fox*_*x32 20
您无法修改IEnumerable<T>对象,它只提供枚举元素的接口.但你可以用它.ToList()来转换IEnumerable<T>成a List<T>.
我不确定这是不是你想要的:
public static SelectList ToSelectList<TEnum>(this TEnum enumObj)
{
IEnumerable<TEnum> values = Enum.GetValues(typeof(TEnum)).Cast<TEnum>();
var result = from TEnum e in values
select new { ID = (int)Enum.Parse(typeof(TEnum), e.ToString()), Name = e.ToString() };
var tempValue = new { ID = 0, Name = "-- Select --" };
var list = result.ToList(); // Create mutable list
list.Insert(0, tempValue); // Add at beginning of list
return new SelectList(list, "Id", "Name", enumObj);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
32580 次 |
| 最近记录: |