C#: Enumeration Bezeichnunganhand des Wertes

Gast #2093887
Lesenswert?

Hallo!

Mit Hilfe der Enum-Klasse ist es ja u.a. möglich, sich die Bezeichnungen 
eine Enumeration geben zu lassen:
1
string[] inhalt = Enum.GetNames(typeof(meineEnum));
Ist es aber auch möglich, wenn ich einen String habe den Wert aus der 
Enumeration zu bekommen?

Also z.B.
1
int value = Enum.GetValue("EineBezeichnung");

Dabei ist zu beachten, dass die Enumeration nicht von 0 ab Bezeichnung 
für Bezeichnung inkrementiert, sonst könnte ich ja den String in dem 
Array "inhalt" suchen und dess Index verwenden. ;)

Danke.

Gruß
Mijano
#2093899
Lesenswert?

Klar, das geht: die Klasse System.Enum hat die statischen Methoden Parse 
und TryParse, mit denen das machbar ist. Vorzugsweise verwendet man die 
Methode TryParse, die ist typsicher.
1
MyEnum enumValue;
2
bool success = System.Enum.TryParse( "stringWert",out enumValue );
3
if ( success == false ) enumValue = MyEnum.defaultWert;
4
int value = (int)enumValue;

Du musst nach dem Umwandeln des Strings noch den Enum-Wert auf int 
casten.

Gruß
Markus

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren