Avatar ·

كيفية تحويل سلسلة نصية إلى 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; ```