Avatar ·

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