Der Fall das man ein Objekt in ein anderes Objekt mappen muss kommt doch recht häufig vor. Auf der einen Seite hat man eine Aufzählung und auf der anderen Seite einen String oder einen numerischen Wert.
Folgende Zuweisungen zeigen, wie man den String oder eben einen numerischen Wert in eine Enumeration casten kann.
Einfacher Cast, String nach Object
var a1 = Enum.Parse(typeof(MyEnum), "Herr");
IgnoreCase – ignoriert Gross- und Kleinschreibung – Standard ist false
var a2 = Enum.Parse(typeof(MyEnum), "frau", true);
Rückgabe in ein Enum
Enum a3 = (Enum)Enum.Parse(typeof(MyEnum), "Familie");
Rückgabe in ein Object
object a4 = Enum.Parse(typeof(MyEnum), "Firma");
Rückgabe in ein String
string a5 = (Enum.Parse(typeof(MyEnum), "OhneAnrede")).ToString();
Durch Übergabe eines numerischen Wertes
var a6 = Enum.Parse(typeof(MyEnum), "3");
Ob ein Wert in der Aufzählung aufgeführt ist, prüft man mit IsDefined
1 2 3 | string a7; if (Enum.IsDefined(typeof(MyEnum), "OhneAnrede")) a7 = (Enum.Parse(typeof(MyEnum), "OhneAnrede", true)).ToString(); |
Dieser Aufruf funktioniert nicht, da es nicht in einen unbekannten Type umgewandelt werden kann
1 2 3 | var a7; if (Enum.IsDefined(typeof(MyEnum), "OhneAnrede")) a7 = Enum.Parse(typeof(MyEnum), "OhneAnrede", true); |
Die entsprechende Enum sieht für das Beispiel wie folgt aus:
public enum MyEnum { Herr, Frau, Familie, Firma, OhneAnrede }
Viel Spass beim entwicklen : )







