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 !

Découvrir

19,99€/mois

Comment convertir une string en Enum avec C# ?

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 📧
Mes formations disponibles 🎓  -5% inclus pour les lecteurs du blog

À 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