Cómo convertir una cadena a enum en C#? (Enum.Parse, TryParse, ignorar mayúsculas/minúsculas)
¡Hola a todos! Soy nuevo en C# y me he quedado atascado en una tarea que parece simple.
Tengo una enumeración (enum) para los estados de un pedido:
```csharp
public enum OrderStatus
{
Pending,
Processing,
Shipped,
Delivered,
Cancelled
}
```
El usuario ingresa un estado en un campo de texto (por ejemplo, "Shipped" o "shipped"). Necesito convertir esta cadena en un valor `OrderStatus` para usarlo en la lógica del programa.
Intenté simplemente asignar la cadena a una variable de tipo `OrderStatus`:
```csharp
string userInput = "Shipped";
OrderStatus status = userInput; // Error de compilación: Cannot implicitly convert type 'string' to 'OrderStatus'
```
Naturalmente, esto no funciona. Sé que existe el método `Enum.Parse`, pero leí que lanza una excepción si la cadena no está en el enum. ¿Y si el usuario ingresa "shipped" en minúsculas o comete un error tipográfico? ¿Cómo convertir correctamente y de forma segura una cadena a un enum, teniendo en cuenta posibles errores de entrada? Preferiblemente con ejemplos de código.
Gracias