您的位置:首页 > 编程语言 > C#

c#枚举遍历(转换)

2015-09-09 15:13 489 查看
1.先来说一下枚举的概念:

(1)枚举使用enum关键字来声明,与类同级。枚举本身可以有修饰符,但枚举的成员始终是公共的,不能有访问修饰符。枚举本身的修饰符仅能使用public和internal。

(2)枚举类型的枚举成员均为静态,且默认为Int32类型。

(3)枚举成员不能相同,但枚举的值可以相同。

(4)枚举最后一个成员的逗号和大括号后面的分号可以省略

2.枚举的形式:

enum sex : byte  //显示指定枚举的底层数据类型
{
male,
female,  //此逗号可以省略
};        //此分号可以省略


3.常用取值方法:

string[] keys = Enum.GetNames(typeof(sex));//获取枚举成员名称集合
Array values = Enum.GetValues(typeof(sex));//获取枚举值集合
string key=Enum.GetName(typeof(Man),val);//根据value获取成员名称
//或者
string Name = Enum.Parse(typeof(Man), i.ToString()).ToString();
int value=(int)sex.male;//获取枚举值
//或者
int value = Convert.ToInt32(Enum.Parse(typeof(sex), key));//根据枚举成员名称获取值



4.枚举遍历:

//分别获取name,value集合,遍历组装
public ActionResult GetSexList()
{
Dictionary<string, int> Sexlist = new Dictionary<string, int>();
string[] keys = Enum.GetNames(typeof(sex));
Array values = Enum.GetValues(typeof(sex));

for (int i = 0; i < keys.Length; i++)
{
Sexlist.Add(keys[i], (int)values.GetValue(i));
}

return View(Sexlist);
}

//视图代码
@model Dictionary<string, int>
<select>
@foreach(var item in @Model)
{
<option value="@item.Value">@item.Key</option>
}
</select>

//遍历其中name,根据name获取对应的value  
foreach (string s in Enum.GetNames(typeof(sex)))
{
    Console.WriteLine("Name:{0}---Value:{1}", s, Enum.Format(typeof(sex), Enum.Parse(typeof(sex), s),"d"));
    //Console.WriteLine("Name:{0}---Value:{1}", s, Convert.ToInt32(Enum.Parse(typeof(sex), s)));
}


                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: