C# Convert String to enum
-
Conversion d’une
string
enenum
en C# - Utilisation des méthodesEnum.Parse()
etEnum.TryParse()
- Conclusion
En C#, nous utilisons les méthodes Enum.Parse()
et Enum.TryParse()
pour convertir une chaîne de caractères en un enum. Nous avons donné ici des exemples pour les deux, mais nous vous recommandons d’utiliser la méthode Enum.TryParse()
pour convertir une chaîne de caractères en un enum.
Conversion d’une string
en enum
en C# - Utilisation des méthodes Enum.Parse()
et Enum.TryParse()
Pour convertir une chaîne de caractères en un enum
, nous pouvons utiliser la méthode Enum.Parse()
. Vous devrez inclure soigneusement System
en haut de votre fichier car Enum.Parse()
est une méthode statique.
Le type d’énumération, la valeur de la chaîne et un indicateur (facultatif) sont les paramètres de cette méthode. La syntaxe correcte pour utiliser Enum.Parse()
et Enum.TryParse()
est la suivante:
EnumName VariableName = (EnumName)Enum.Parse(typeof(EnumName), StringValue);
EnumName VariableName = (EnumName)Enum.Parse(typeof(EnumName), StringValue,
indicator); // indicator can be true or false
// To implement Enum.TryParse()
EnumName VariableName;
Enum.TryParse(StringValue, out VariableName);
Nous allons maintenant l’implémenter dans un programme c#.
Programme C# pour convertir une string
en un enum
en utilisant Enum.Parse()
using System;
class Conversion {
enum Flowers { None, Daisy = 1, Lili = 2, Rose = 3 }
static void Main() {
string stringvalue = "Rose";
Flowers Flower = (Flowers)Enum.Parse(typeof(Flowers), stringvalue);
// To check if we have converted successfully
if (Flower == Flowers.Rose) {
Console.WriteLine("The Flower is Rose");
}
}
}
Production:
The Flower is Rose
Nous avons ici une énumération appelée Flowers
contenant de multiples constantes avec leurs valeurs respectives. Nous avons appelé la méthode Enum.Parse()
pour convertir la valeur de la chaîne Rose
en un énumé. Le typeof(Flowers)
renverra le type d’énumération. Au final, nous avons vérifié si notre conversion a réussi ou non.
Parfois, une exception peut se produire si la chaîne que nous essayons de convertir n’est pas disponible dans l’énumération. Pour éviter cela, nous utiliserons le bloc try-catch.
Programme C# pour convertir une string
en un enum
avec traitement des exceptions en utilisant la méthode Enum.Parse()
using System;
class Conversion {
enum Flowers { None, Daisy = 1, Lili = 2, Rose = 3 }
static void Main() {
stringvalue = "Jasmine";
try {
Flowers Flower = (Flowers)Enum.Parse(typeof(Flowers), stringvalue);
} catch (Exception ex) {
Console.WriteLine("Not Possible");
// Set value to none
Flower = Flowers.none;
}
}
}
Production:
Not Possible
Programme C# pour convertir une chaîne
en un enum
en utilisant Enum.TryParse()
using System;
enum Flowers { None, Daisy = 1, Lili = 2, Rose = 3 }
class Conversion {
static void Main() {
string stringvalue = "Rose";
// Using Enum.TryParse()
Flowers Flower;
if (Enum.TryParse(stringvalue, out Flower)) {
Console.WriteLine(Flower == Flowers.Rose);
}
}
}
Production:
True
Nous pouvons aussi passer la valeur de la constante dans enum comme paramètre dans la méthode Enum.TryParse()
. Le programme suivant implémente ceci:
using System;
enum Flowers { None, Daisy = 1, Lili = 2, Rose = 3 }
class Conversion {
static void Main() {
Flowers Flower;
if (Enum.TryParse("3", out Flower)) {
Console.WriteLine(Flower);
}
}
}
Production:
Rose
Vous pouvez aussi vérifier que la valeur de la chaîne que vous voulez convertir est définie dans enum ou non en utilisant la méthode Enum.IsDefined()
.
Programme C# pour vérifier l’existence de la valeur de la chaîne en utilisant la méthode Enum.IsDefined()
using System;
enum Flowers { None, Daisy = 1, Lili = 2, Rose = 3 }
class Conversion {
static void Main() {
Console.WriteLine(Enum.IsDefined(typeof(Flowers), "Rose"));
}
}
Production:
True
Conclusion
Enum.Parse()
et Enum.TryParse()
sont les méthodes qui sont utilisées pour convertir une chaîne de caractères en un enum. Mais la meilleure pratique consiste à utiliser Enum.TryParse()
.
Article connexe - Csharp String
- C# Convertir Int en String
- Utiliser des chaînes dans l'instruction Switch en C#
- Comment convertir une chaîne de caractères en booléen en C#
- Comment convertir une chaîne de caractères en un tableau d'octets en C#
- Comment convertir une chaînes de caractères pour qu'elle flotte en C#