Forum: PC-Programmierung C#: Enumeration Bezeichnunganhand des Wertes


von Mijano (Gast)


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

von Markus V. (valvestino)


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

von Mijano (Gast)


Lesenswert?

Hi!

Es gibt nur Parse bei mir. Aber das wichtigste ist, dass es geht.

Danke.

Gruß
Mijano

von Markus V. (valvestino)


Lesenswert?

Mijano schrieb:
> Es gibt nur Parse bei mir. Aber das wichtigste ist, dass es geht.

Ok. Ich habe erst gerade gesehen, dass es TryParse erst ab .NET 4.0 
gibt.

Gruß
Markus

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.