c#枚举遍历(转换)
2015-09-09 15:13
489 查看
1.先来说一下枚举的概念:
(1)枚举使用enum关键字来声明,与类同级。枚举本身可以有修饰符,但枚举的成员始终是公共的,不能有访问修饰符。枚举本身的修饰符仅能使用public和internal。
(2)枚举类型的枚举成员均为静态,且默认为Int32类型。
(3)枚举成员不能相同,但枚举的值可以相同。
(4)枚举最后一个成员的逗号和大括号后面的分号可以省略
2.枚举的形式:
3.常用取值方法:
4.枚举遍历:
(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))); }
相关文章推荐
- C#版 Socket编程(最简单的Socket通信功能)
- 学习C#修饰符:类修饰符和成员修饰符
- 解决VS2012 WPF中“对类型“ ”的构造函数执行符合制定的绑定约束的调用时引发了异常。行号为“3”,行位置为“9””问题的过程
- C# Mutex对象的使用
- C#WebBrowser控件使用教程与技巧收集
- c#对于mutex互斥量的深入理解
- 刚刚接触C#
- c#中的delegate(委托)和event(事件)
- C#中命名空间别名的使用
- C#中virtual, override, new的使用
- C#中Dictionary的用法
- C# 图片超过指定大小将压缩到指定大小不失真
- c#中抽象类和接口的相同点跟区别
- C#委托和事件
- C#设计模式(4)——抽象工厂模式
- C#操作office进行Excel图表创建,保存本地,word获取
- C#多线程异步访问winform中控件
- C# 中的委托和事件
- C#抽象类
- C#扩展方法