2013-10-12 10 views
11

私はかなり面白い問題がありますが、私はあなたがこのアプローチを使って解決することすらできないと確信しています。文字列が下がったときに列挙を解析する

私はすべて小文字の文字列を持っています。 businesslawとしましょう。今、値がBusinessLawの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があります。

しかし、場合以外、同じ名前の複数の列挙値があるかもしれないことに注意してください:

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

おそらく、可能であれば:)そこ

+0

そして、このような列挙値を避ける必要があります私たちには完璧な答えがあります。私の一日を節約してくれてありがとう!幸いなことに、このシナリオは存在しません:-) –