enum(枚举类型)与字符串相互转换

关键代码

  得到枚举值

1 Color.Red.GetHashCode();

   得到枚举名称

1 Color.Red.ToString();

   枚举类型转换代码

1 Enum.Parse(typeof(Color),str)

 示例数据

  首先创建示例数据,如下:

 1 //……
 2 /// <summary>
 3 /// 颜色枚举
 4  /// </summary>
 5 public enum Color
 6 {       
 7       Red,        //红色
 8       Blue,       //蓝色
 9       Green       //绿色
10 }   
11 //……

 枚举值转字符串

1 int hashCode = Color.Red.GetHashCode();
2 string enumParseStr = Enum.Parse(typeof(Color), hashCode.ToString()).ToString();

  Enum.Parse()得到的值是object类型的,我们要转换的是值,得到的是名称,因此用ToString()得到字符串类型的名称。

字符串转枚举值

1 string str = Color.Red.ToString();
2 int enumParseInt = Convert.ToInt32(Enum.Parse(typeof(Color), str));

   这里要转换的是名字,得到的是值,因此用Convert.ToInt32()得到该值。

Enum说明

  • 默认枚举第1个值为0,然后依次加1。
  • 指定枚举前1个枚举,它后面的值会从它开始依次加1。
  • 可以无序定义枚举值。

参考网址

  [1] https://www.cnblogs.com/knightluffy/p/3529230.html

posted @ 2019-10-11 11:44  陆陆无为而治者  阅读(11498)  评论(0编辑  收藏  举报