4 Stimmen

Wie erstellt man ein Enum-Objekt aus seinem Typ und dem Namen des Wertes?

Ich habe einen Typ (System.Type) einer Aufzählung und eine Zeichenfolge mit Aufzählungswert zu setzen.

Z.B. gegeben:

enum MyEnum { A, B, C };

Ich habe typeof(MyEnum) und "B".

Wie erstelle ich ein MyEnum-Objekt, das auf MyEnum.B eingestellt ist?

16voto

Yuval Punkte 1382
MyEnum enumValue = (MyEnum)Enum.Parse(typeof(MyEnum), "B");

Sie haben auch eine Überladung mit Groß- und Kleinschreibung.

3voto

Pavel Chuchuva Punkte 21957

Ich nehme an, Sie haben keinen Zugriff auf MyEnum, sondern nur auf typeof(MyEnum):

void foo(Type t)
{
   Object o = Enum.Parse(t, "B");
}

1voto

Brad Patton Punkte 3637

Sie können dies mit Generika tun. Ich habe eine Utility-Klasse erstellt, um dies zu verpacken:

public static class Utils {
    public static T ParseEnum<T>(string value) {
        return (T)Enum.Parse(typeof(T), value, true);
    }

Dann aufgerufen wie:

string s = "B";
MyEnum enumValue = Utils.ParseEnum<MyEnum>(s);

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