3883 votes

Cast int enum en C#

Ce est un moyen facile et rapide de lancer un int à un enum en C#?

4644voto

FlySwat Points 61945

À partir d'une chaîne:

YourEnum foo = (YourEnum) Enum.Parse(typeof(YourEnum), yourString);

À partir d'un int:

YourEnum foo = (YourEnum)yourInt;

Mise à jour : De nombre, vous pouvez également:

YourEnum foo = Enum.ToObject(typeof(YourEnum) , yourInt);

1151voto

Matt Hamilton Points 98268

Juste de la lancer:

MyEnum e = (MyEnum)3;

Vous pouvez vérifier si il est dans la gamme à l'aide d'Enum.IsDefined:

if (Enum.IsDefined(typeof(MyEnum), 3)) { ... }

287voto

Abdul Munim Points 9039

Pour ces gens arrêter par qui veulent l'utiliser comme une extension de la méthode, au lieu d'un paquebot de réponses:

public static T ToEnum<T>(this string enumString)
{
    return (T) Enum.Parse(typeof (T), enumString);
}

Utilisation :

Color colorEnum = "Red".ToEnum<Color>();

OU

string color = "Red";
var colorEnum = color.ToEnum<Color>();

143voto

abigblackman Points 301
int one = 1;

MyEnum e = (MyEnum)one;

77voto

MSkuta Points 262

J'utilise ce bout de code pour lancer int de mon enum:

if (typeof(YourEnum).IsEnumDefined(valueToCast)) return (YourEnum)valueToCast;
else { //handle it here, if its not defined }

J'ai trouver la meilleure solution.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X