2013-10-12 105 views
11

我有一個很好玩的問題,我不知道你甚至可以使用這種方法解決。解析枚舉時降低字符串

我有一些字符串,全是小寫字母。讓我們把它叫做businesslaw。現在,我有一個枚舉類型,其值爲BusinessLaw

我想要做的是將businesslaw字符串轉換爲BusinessLaw枚舉類型。

通常我會做這種方法是:

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

但是,這是不可能的時,有一些情況差異。

你會如何解決這個問題?或者它本質上是不可解決的?

回答

16

可以使用the overload of Enum.Parse與最後一個參數指示大小寫:

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

有一個類似的TryParse overload

但是,請記住,有可能比其他情況下的多個同名枚舉值:

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

你或許應該避免可能的話:)

+0

還有有這樣枚舉值我們有完美的答案。非常感謝您節省我的一天!幸運的是,可能的情況不存在:-) –