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 !
Article publié le 06/11/2022, dernière mise à jour le 19/09/2023
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 !
Aucun commentaire pour l'instant