Разбирать перечисление при опускании строки

У меня довольно забавная проблема, и я не уверен, что вы даже можете решить этот подход.

У меня есть строка, которая является строчной. Позвольте просто назвать это бизнес-левом. Теперь у меня есть тип перечисления, где значение BusinessLaw.

Что я хочу сделать, это преобразовать строку бизнес-каталога в тип перечисления BusinessLaw.

Обычно я бы подходил к нему, делая это:

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

Однако это невозможно, если есть некоторая разница в случае.

Как бы вы решили эту проблему? Или это по своей природе, неразрешимо?

Ответ 1

Вы можете использовать перегрузку Enum.Parse с последним параметром для указания чувствительности к регистру:

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

Там есть аналогичная перегрузка TryParse.

Однако помните, что может быть несколько значений enum с тем же именем, кроме случая:

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

Вероятно, вы должны избегать таких значений перечисления, если это возможно:)