mikrocontroller.net

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


Autor: Mijano (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Mit Hilfe der Enum-Klasse ist es ja u.a. möglich, sich die Bezeichnungen 
eine Enumeration geben zu lassen:
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.
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

Autor: Markus Volz (valvestino)
Datum:

Bewertung
0 lesenswert
nicht 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.
MyEnum enumValue;
bool success = System.Enum.TryParse( "stringWert",out enumValue );
if ( success == false ) enumValue = MyEnum.defaultWert;
int value = (int)enumValue;

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

Gruß
Markus

Autor: Mijano (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi!

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

Danke.

Gruß
Mijano

Autor: Markus Volz (valvestino)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.