Comment convertir un "int" en un "enum" en C# ?
D'une chaîne :
YourEnum foo = (YourEnum) Enum.Parse(typeof(YourEnum), yourString);
// the foo.ToString().Contains(",") check is necessary for enumerations marked with an [Flags] attribute
if (!Enum.IsDefined(typeof(YourEnum), foo) && !foo.ToString().Contains(","))
throw new InvalidOperationException($"{yourString} is not an underlying value of the YourEnum enumeration.")
A partir d'un int :
YourEnum foo = (YourEnum)yourInt;
Update:
A partir de ce numéro, vous pouvez aussi
YourEnum foo = (YourEnum)Enum.ToObject(typeof(YourEnum) , yourInt);
Il suffit de le lancer :
MyEnum e = (MyEnum)3;
Vous pouvez vérifier s'il est dans la plage en utilisant [Enum.IsDefined][1] :
if (Enum.IsDefined(typeof(MyEnum), 3)) { ... }
[1] : http://msdn.microsoft.com/en-us/library/system.enum.isdefined.aspx
Prenons l'exemple suivant :
int one = 1;
MyEnum e = (MyEnum)one;