1036 votes

Comment convertir une chaîne à un enum en c# ?

Quelle est la meilleure façon de convertir une chaîne en une valeur d’énumération en c# ?

J’ai une balise select HTML contenant les valeurs d’une énumération. Lorsque la page est publiée, je tiens à relever la valeur (qui sera sous la forme d’une chaîne) et le convertir la valeur d’énumération.

Dans un monde idéal, je pouvais faire quelque chose comme ceci :

mais ce n’est pas valide.

1740voto

Keith Points 46288

C’est plutôt moche :

J’ai tendance à simplifier ceci avec :

Alors je peux faire :

356voto

Erwin Mayer Points 3427

Utilisez Enum.TryParse() (> = .NET 4.0) :

218voto

McKenzieG1 Points 5294

Notez que les performances de Enum.Parse() sont terrible, car il est implémenté par réflexion. (Le même est vrai de Enum.ToString, qui va dans l’autre sens).

Si vous avez besoin convertir des chaînes en Enums dans code dépendant des performances, votre meilleur pari est de créer un `` au démarrage et l’utiliser pour faire vos conversions.

106voto

DavidWhitney Points 1957

33voto

Foysal Points 787

Vous pouvez utiliser les méthodes d’Extension maintenant

Et vous pouvez appeler le code ci-dessous [ici, `` est un type enum]

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