Comment convertir une string en Enum avec C# ?
Apprenez à convertir une chaîne de caractère vers une énumération en quelques lignes de code !

Améliorez vos compétences en dev !
Des cours complets, créés par des experts, pour tous niveaux et accessibles en illimité grâce à notre abonnement !
19,99€/mois

Le C# étant un langage strictement typé, donc même si une chaîne de caractère correspond parfaitement à la valeur d'une énumération, elle ne pourra pas être castée automatiquement.
Solution
Pour transformer/convertir une string en une valeur d'enum, il faudra utiliser la méthode suivante :
bool success = Enum.TryParse("stringValue", out TestEnum enumValue);
Cette méthode Enum.TryParse est disponible en .NET Core and .NET Framework ≥4.0, et le mot clé "out" va permettre d'initialiser et d'assigner une variable directement en la passant en paramètre de la fonction (disponible en C#7).
Voici un code contenant tout le contexte pour y voir plus clair :
enum TestEnum
{
Zero,
One
}
static void Main(string[] args)
{
string rawValue = "Zero";
bool success = Enum.TryParse(rawValue, out TestEnum enumValue);
if (success) {
Console.WriteLine(enumValue.ToString());
} else
{
Console.WriteLine("Couldn't convert");
}
}
Attention : Même lorsque la conversion échoue, la variable de sortie ( avec le mot clé out) sera mise par défaut à la première valeur de l'Enum !
Il faut donc toujours avoir une condition qui vérifie l'état de retour de la méthode Enum.TryParse !
Les articles les plus populaires du blog
Envie de continuer à lire des articles autour du développement web (entre autres) ? Voici la sélection des articles de mon blog les plus lus par la communauté !
Voir la sélection 🚀Recevez les articles de la semaine par e-mail pour ne rien manquer !
S'abonner à la newsletter 📧
À propos de l'auteur
Hello, je suis Nicolas Brondin-Bernard, ingénieur web indépendant depuis 2015 passionné par le partage d'expériences et de connaissances.
Aujourd'hui je suis aussi formateur/coach pour développeurs web juniors, tu peux me contacter sur nicolas@brondin.com, sur mon site ou devenir membre de ma newsletter pour ne jamais louper le meilleur article de la semaine et être tenu au courant de mes projets !
Photo par Fotis Fotopoulos sur Unsplash