كيفية تحويل سلسلة نصية إلى enum في C#؟
مرحبًا أيها الزملاء! أنا جديد في C# وواجهت مشكلة. لدي enum لحالات الطلب:
```csharp
public enum OrderStatus
{
Pending,
Processing,
Shipped,
Delivered,
Cancelled
}
```
أتلقى الحالة من المستخدم كسلسلة نصية، على سبيل المثال من حقل نصي أو من استجابة JSON من API. قد تكون السلسلة مثل: "Pending" أو "Shipped" أو "Cancelled". أحتاج إلى تحويل هذه السلسلة إلى قيمة enum المقابلة لاستخدامها في منطق البرنامج.
حاولت ببساطة تعيين السلسلة إلى متغير من نوع `OrderStatus`، لكن المترجم أعطى خطأ. حاولت استخدام `Convert.ChangeType()`، لكن ذلك لم يعمل أيضًا. الطريقة الوحيدة التي وجدتها هي كتابة `switch` ضخم مع الكثير من `case`:
```csharp
OrderStatus status;
switch (inputString)
{
case "Pending":
status = OrderStatus.Pending;
break;
case "Processing":
status = OrderStatus.Processing;
break;
```