Avatar ·

Como converter int para enum em C#? Casting e Enum.Parse

Olá a todos! Sou um desenvolvedor C# iniciante e me deparei com uma situação que não entendo. Tenho uma enumeração (enum) para status de pedido:\n\n```csharp\npublic enum OrderStatus\n{\n Created = 1,\n Processing = 2,\n Shipped = 3,\n Delivered = 4\n}\n```\n\nDo banco de dados, recebo um valor numérico do status como int (por exemplo, 2). Preciso converter esse int para um elemento da enumeração OrderStatus. Tentei simplesmente atribuir:\n\n```csharp\nint statusValue = 2;\nOrderStatus status = statusValue; // Erro de compilação!\n```\n\nMas recebo o erro: "Cannot implicitly convert type 'int' to 'OrderStatus'". Entendo que C# é uma linguagem fortemente tipada, mas como então realizar essa conversão corretamente?\n\nOuvi falar sobre casting explícito e sobre o método Enum.Parse, mas não sei exatamente c