通过枚举获取对应的描述
通过描述获取对应的枚举
public enum RunTimePosition
{
/// <summary>
/// 列车长
/// </summary>
[Description("列车长")] LieCheZhang = 1,
/// <summary>
/// 列车员1-男
/// </summary>
[Description("列车员男兼安全员")] LieCheYuanNan = 2,
/// <summary>
/// 列车员2-女
/// </summary>
[Description("列车员2-女")] LieCheYuan = 3,
/// <summary>
/// 列车员3-女
/// </summary>
[Description("列车员3-女")] LieCheYuan1 = 4,
}
using System.Reflection;
using System.ComponentModel;
/// <summary>
/// // *** 通过枚举获取描述的名称
/// </summary>
public static string GetDescription(Enum value)
{
FieldInfo fieldInfo = value.GetType().GetField(value.ToString());
DescriptionAttribute descAttr = Attribute.GetCustomAttribute(fieldInfo, typeof(DescriptionAttribute)) as DescriptionAttribute;
return (descAttr == null) ? value.ToString() : descAttr.Description;
}
/// <summary>
/// // *** 根据描述获取枚举
/// </summary>
public static T GetEnumValue<T>(string name) where T : Enum
{
Array array = Enum.GetValues(typeof(T));
foreach (T val in array)
{
if (string.Equals(GetDescription(val), name))
{
return val;
}
}
return default;
}