496 Stimmen

Wie man C# Enum Beschreibung von Wert erhalten?

Ich habe eine Aufzählung mit Beschreibungsattributen wie diesem:

public enum MyEnum
{
    Name1 = 1,
    [Description("Here is another")]
    HereIsAnother = 2,
    [Description("Last one")]
    LastOne = 3
}

Ich habe folgenden Code gefunden, um die Beschreibung basierend auf einem Enum abzurufen

public static string GetEnumDescription(Enum value)
{
    FieldInfo fi = value.GetType().GetField(value.ToString());

    DescriptionAttribute[] attributes = fi.GetCustomAttributes(typeof(DescriptionAttribute), false) as DescriptionAttribute[];

    if (attributes != null && attributes.Any())
    {
        return attributes.First().Description;
    }

    return value.ToString();
}

Dies erlaubt mir, Code zu schreiben wie:

var myEnumDescriptions = from MyEnum n in Enum.GetValues(typeof(MyEnum))
                         select new { ID = (int)n, Name = Enumerations.GetEnumDescription(n) };

Wenn ich den Enum-Wert kenne (z. B. 1), wie kann ich dann die Beschreibung abrufen? Mit anderen Worten, wie kann ich eine Ganzzahl in einen "Enum-Wert" konvertieren, um ihn an meine GetDescription-Methode zu übergeben?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X