كيفية تحويل سلسلة نصية إلى enum في C#؟ (Enum.Parse، TryParse، تجاهل حالة الأحرف)
مرحباً بالجميع! أنا مبتدئ في C# وقد علقت في مهمة تبدو بسيطة.
لدي تعداد (enum) لحالات الطلب:
```csharp
public enum OrderStatus
{
Pending,
Processing,
Shipped,
Delivered,
Cancelled
}
```
يقوم المستخدم بإدخال حالة في حقل نصي (مثلاً، "Shipped" أو "shipped"). أحتاج إلى تحويل هذه السلسلة إلى قيمة `OrderStatus` لاستخدامها في منطق البرنامج.
حاولت ببساطة تعيين السلسلة إلى متغير من نوع `OrderStatus`:
```csharp
string userInput = "Shipped";
OrderStatus status = userInput; // خطأ في الترجمة: Cannot implicitly convert type 'string' to 'OrderStatus'
```
بطبيعة الحال، هذا لا يعمل. أعلم أن هناك طريقة `Enum.Parse`، لكنني قرأت أنها تطرح استثناءً إذا لم تكن السلسلة موجودة في enum. وماذا لو أدخل المستخدم "shipped" بحرف صغير أو أخطأ في الكتابة؟ كيف يمكن تحويل السلسلة إلى enum بشكل صحيح وآمن، مع مراعاة الأخطاء المحتملة في الإدخال؟ يُفضل مع أمثلة على الكود.
شكراً