Comment convertir une chaîne en enum en C# ? (Enum.Parse, TryParse, ignorer la casse)
Bonjour à tous ! Je suis débutant en C# et je bloque sur une tâche apparemment simple.
J'ai une énumération (enum) pour les statuts de commande :
```csharp
public enum OrderStatus
{
Pending,
Processing,
Shipped,
Delivered,
Cancelled
}
```
L'utilisateur saisit un statut dans un champ de texte (par exemple, "Shipped" ou "shipped"). J'ai besoin de convertir cette chaîne en valeur `OrderStatus` pour l'utiliser dans la logique du programme.
J'ai essayé d'assigner simplement la chaîne à une variable de type `OrderStatus` :
```csharp
string userInput = "Shipped";
OrderStatus status = userInput; // Erreur de compilation : Cannot implicitly convert type 'string' to 'OrderStatus'
```
Naturellement, cela ne fonctionne pas. Je sais qu'il existe la méthode `Enum.Parse`, mais j'ai lu qu'elle lève une exception si la chaîne n'est pas dans l'enum. Et si l'utilisateur saisit "shipped" en minuscules ou fait une faute de frappe ? Comment convertir correctement et en toute sécurité une chaîne en enum, en tenant compte des erreurs de saisie possibles ? Idéalement avec des exemples de code.
Merci
No answers yet.
Connectez-vous pour laisser une réponse
Blogs
Monorepo avec C# : organisation du code dans les projets .NET
Concurrence et multithreading en Java : guide complet