2013-10-12 165 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

还有有这样枚举值我们有完美的答案。非常感谢您节省我的一天!幸运的是,可能的情况不存在:-) –