the using the System; the using the System.ComponentModel; namespace ConsoleApp1 { Internal class Program { Private static void the Main ( String [] args) { var value = GetEnumValueByDescription ( " read " , typeof (StudentStatusEnum)); Console.WriteLine (value.toString () ); the Console.ReadKey (); } #region obtaining enumeration value enumerated described /// <Summary> /// The enumerator description for the enumeration value /// </ Summary> /// <param name="description">需要匹配的枚举描述</param> /// <param name="en">枚举类型</param> /// <returns></returns> public static object GetEnumValueByDescription(string description, Type en) { var fields = en.GetFields(); for (int i = 1, count = fields.Length; i < count; i++) { var value = (int)Enum.Parse(en, fields[i].Name); var enumAttributes = (DescriptionAttribute[])fields[i].GetCustomAttributes(typeof(DescriptionAttribute), false); if (enumAttributes.Length > 0) { var desc = enumAttributes[0].Description; if (desc == description) { return value; } } } return null; } #endregion } /// <summary> /// 学生状态 /// </summary> public enum StudentStatusEnum { /// <summary> /// 在读 /// </summary> [Description("在读")] Study = 0, /// <summary> /// 毕业 /// </summary> [Description("毕业")] Graduate = 1, /// <summary> /// 退学 /// </summary> [Description("退学")] Leave = 2, /// <summary> /// 休学 /// </summary> [Description("休学")] Suspend = 3 } }