String in Enum umwandeln?

Written on March 17, 2004

Die Frage in der C#-Mailingliste lautete:

ich habe eine Enum, z.b. "public enum Inhalt { Milch, Zucker, Salz, Reis}".
Und ich habe ein Property in einer Klasse vom Typen "Inhalt".
Jetzt bekomme ich eine Zeichenfolge geliefert, z.B. "Zucker".
Wie kann ich der Property am einfachsten nun den Wert "Inhalt.Zucker" zuweisen?

Lösung: Enum.Parse verwenden - auf die oben genannte Frage angepasst:

enum Inhalt {Milch, Zucker, Salz, Reis }
public static void Main()
{
Inhalt TestInhalt;
TestInhalt = (Inhalt)Enum.Parse(typeof(Inhalt),"Zucker");
if(TestInhalt == Inhalt.Zucker) Console.WriteLine("Perfekt");
Console.ReadLine();
}

Wie das ganze rückwärts funktioniert, steht übrigens in dem Artikel "Enums lesbar machen"