首页 > 代码库 > C# 中 枚举Enum 一些转换的方法整理
C# 中 枚举Enum 一些转换的方法整理
工作中 经常遇到枚举 的一些转换 特别是获取枚举备注等 特地整理下 方法以后使用
public void TestMethod1() { TestEnumOne colorEnum = TestEnumOne.Red; int colorValue = http://www.mamicode.com/0x0000FF;"Red"; string colorDes = "红色"; //枚举To枚举字符串 colorStr = colorEnum.ToString(); colorStr = Enum.GetName(typeof(TestEnumOne), colorEnum); //枚举值To枚举字符串 colorStr = Enum.GetName(typeof(TestEnumOne), colorValue); //枚举To枚举值 colorValue = http://www.mamicode.com/colorEnum.GetHashCode();>
下面是一个 枚举 和上面用到的一些方法
public static class EnumClass { public enum TestEnumOne { [Description("红色")] Red = 0xff0000, [Description("橙色")] Orange = 0xFFA500, [Description("黄色")] Yellow = 0xFFFF00, [Description("蓝色")] Blue = 0x0000FF, } /// <summary> /// 根据枚举获取备注 /// </summary> /// <param name="aEnum">枚举</param> /// <param name="enumType">枚举类型</param> /// <returns>备注</returns> public static string GetEnumDescriptionByEnum(this Enum aEnum, System.Type enumType) { string enumDescription = string.Empty; foreach (System.Enum enumItem in System.Enum.GetValues(enumType)) { string enumString = Enum.GetName(enumType, aEnum); if (enumString.ToLower() == Enum.GetName(enumType, enumItem).ToLower()) { FieldInfo fi = enumType.GetField(enumString); DescriptionAttribute da = (DescriptionAttribute)Attribute.GetCustomAttribute(fi, enumType); if (da != null) { enumDescription = da.Description; } } } return enumDescription; } /// <summary> /// 根据枚举值获取备注 /// </summary> /// <param name="aEnum">枚举</param> /// <param name="enumType">枚举类型</param> /// <param name="enumValue">枚举值</param> /// <returns>备注</returns> public static string GetEnumDescriptionByEnumValue(this Enum aEnum, System.Type enumType, int enumValue) { string enumDescription = string.Empty; foreach (System.Enum enumItem in System.Enum.GetValues(enumType)) { if (enumItem.GetHashCode() == (int)enumValue) { string enumString = Enum.GetName(enumType, enumValue); FieldInfo fi = enumType.GetField(enumString); DescriptionAttribute da = (DescriptionAttribute)Attribute.GetCustomAttribute(fi, enumType); if (da != null) { enumDescription = da.Description; } } } return enumDescription; } /// <summary> /// 根据枚举字符串获取备注 /// </summary> /// <param name="aEnum">枚举</param> /// <param name="enumType">枚举类型</param> /// <param name="enumValue">枚举值</param> /// <returns>备注</returns> public static string GetEnumDescriptionByEnumString(this Enum aEnum, System.Type enumType, string enumString) { string enumDescription = string.Empty; foreach (System.Enum enumItem in System.Enum.GetValues(enumType)) { if (enumString.ToLower() == Enum.GetName(enumType, enumItem).ToLower()) { FieldInfo fi = enumType.GetField(enumString); DescriptionAttribute da = (DescriptionAttribute)Attribute.GetCustomAttribute(fi, enumType); if (da != null) { enumDescription = da.Description; } } } return enumDescription; } }
C# 中 枚举Enum 一些转换的方法整理
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。