获取枚举文本值和描述信息, 枚举转字典
string name = Enum.GetName(value.GetType(), value);//枚举文本值
aa c= (aa)Enum.Parse(typeof(aa), str)//字符串转枚举
/// <summary> /// 返回枚举项的描述信息。 /// </summary> /// <param name="value">要获取描述信息的枚举项。</param> /// <returns>枚举想的描述信息。</returns> public static string GetDescription(Enum value) { Type enumType = value.GetType(); // 获取枚举常数名称。 string name = Enum.GetName(enumType, value); if (name != null) { // 获取枚举字段。 FieldInfo fieldInfo = enumType.GetField(name); if (fieldInfo != null) { // 获取描述的属性。 DescriptionAttribute attr = Attribute.GetCustomAttribute(fieldInfo, typeof(DescriptionAttribute), false) as DescriptionAttribute; if (attr != null) { return attr.Description; } } } return null; }
public enum aa { [Description("日志")] Log = 0, [Description("其他")] Other =1 } var a = GetDescription(aa.Log); MessageBox.Show(a); 输出 日志
枚举转字典
/// <summary> /// 枚举转字典(无需获取描述时使用) /// </summary> public IDictionary<int, string> EnumToDictionary(Type type) { string[] Names = System.Enum.GetNames(type); Array Values = System.Enum.GetValues(type); IDictionary<int, string> dic = new Dictionary<int, string>(); for (int i = 0; i < Values.Length; i++) { dic.Add((int)Values.GetValue(i), Names[i].ToString()); } return dic; }
地址:https://www.cnblogs.com/zhoushangwu/p/9581049.html