2013-10-12 7 views
11

मुझे एक बहुत मजेदार समस्या है, जो मुझे यकीन नहीं है कि आप इस दृष्टिकोण का उपयोग करके भी हल कर सकते हैं।स्ट्रिंग कम होने पर पार्स एनम

मेरे पास कुछ स्ट्रिंग है, जो सभी लोअरकेस है। आइए बस इसे व्यवसाय करें पर कॉल करें। अब, मेरे पास एक enum प्रकार है, जहां मान BusinessLaw है।

मैं क्या करना चाहता हूं, व्यवसाय की स्ट्रिंग को बिजनेस लॉ एनम प्रकार में परिवर्तित करना है।

आम तौर पर मैं इसे ऐसा करने से दृष्टिकोण होगा:

return (EnumType) (Enum.Parse(typeof (EnumType), value)); 

हालांकि, यह संभव नहीं है जब वहाँ कुछ मामले का अंतर है।

आप इस मुद्दे को कैसे हल करेंगे? या यह प्रकृति से, असहनीय है?

उत्तर

16

आप केस-संवेदनशीलता दर्शाने के लिए एक अंतिम पैरामीटर के साथ the overload of Enum.Parse उपयोग कर सकते हैं:

return (EnumType) (Enum.Parse(typeof (EnumType), value, false)); 

वहाँ एक समान TryParse overload है।

हालांकि, ध्यान रखें कि वहाँ इसी मामले के अलावा अन्य नाम के साथ कई enum मूल्यों हो सकता है में भालू:

public enum Awkward 
{ 
    FOO, 
    foo, 
    Foo, 
    fOO 
} 

आप शायद इस तरह के enum मूल्यों होने यदि संभव हो तो :)

+0

और वहाँ से बचना चाहिए हमारे पास सही जवाब है। मेरे दिन को बचाने के लिए बहुत बहुत धन्यवाद! सौभाग्य से परिदृश्य वहां नहीं हो सकता है :-) –

संबंधित मुद्दे