C# ENUM 字符串输出功能

时间:2022-06-10 10:34:43
public enum MeasurementType
{
Each, [DisplayText("Lineal Metres")]
LinealMetre, [DisplayText("Square Metres")]
SquareMetre, [DisplayText("Cubic Metres")]
CubicMetre, [DisplayText("Per 1000")]
Per1000, Other
} public class DisplayText : Attribute
{ public DisplayText(string Text)
{
this.text = Text;
} private string text; public string Text
{
get { return text; }
set { text = value; }
}
}

Then, used an extension method like this:

    public static string ToDescription(this Enum en)
{ Type type = en.GetType(); MemberInfo[] memInfo = type.GetMember(en.ToString()); if (memInfo != null && memInfo.Length > 0)
{ object[] attrs = memInfo[0].GetCustomAttributes(
typeof(DisplayText), false); if (attrs != null && attrs.Length > 0) return ((DisplayText)attrs[0]).Text; } return en.ToString(); }

You can then just call

myEnum.ToDescription()