Como converter uma string para enum em C#? (Enum.Parse, TryParse, ignorando maiúsculas/minúsculas)
Olá a todos! Sou novo em C# e estou preso em uma tarefa aparentemente simples.
Eu tenho um enum para status de pedido:
```csharp
public enum OrderStatus
{
Pending,
Processing,
Shipped,
Delivered,
Cancelled
}
```
O usuário digita um status em um campo de texto (por exemplo, "Shipped" ou "shipped"). Preciso converter essa string para um valor `OrderStatus` para usá-lo na lógica do programa.
Tentei simplesmente atribuir a string a uma variável do tipo `OrderStatus`:
```csharp
string userInput = "Shipped";
OrderStatus status = userInput; // Erro de compilação: Cannot implicitly convert type 'string' to 'OrderStatus'
```
Naturalmente, isso não funciona. Eu sei que existe o método `Enum.Parse`, mas li que ele lança uma exceção se a string não estiver no enum. E se o usuário digitar "shipped" com letra minúscula ou cometer um erro de digitação? Como converter corretamente e com segurança uma string para enum, considerando possíveis erros de entrada? De preferência com exemplos de código.
Obrigado!
No answers yet.
Faça login para deixar uma resposta