Les énumérations sont très utiles en C# mais il n'est pas toujours possible de conserver le type Enum et l'on n'est parfois obligé de passer par un int puisque les valeurs d'une énumération sont associées à des int.
Pour faire un cast d'une chaine de caractères (string en Enum)
MonEnum foo = (MonEnum) Enum.Parse(typeof(MonEnum), MyChaineDeCaracteres);
Pour faire un cast d'un entier (int) en Enum
MonEnum foo = (MonEnum)MyInt;