У меня есть тип перечисления, подобный этому в качестве примера:
public Enum MyEnum {
enum1, enum2, enum3 };
Я прочитаю строку из файла конфигурации. Мне нужно, чтобы он разбирал строку с типом MyEnum или null o не определялся. Не уверен, что будут работать следующие коды (извините за отсутствие доступа к моему VS прямо сейчас):
// example: ParseEnum<MyEnum>("ENUM1", ref eVal);
bool ParseEnum<T>(string value1, ref eVal) where T : Enum
{
bool bRet = false;
var x = from x in Enum.GetNames(typeof(T)) where
string.Equals(value1, x, StringComparison. OrdinalIgnoreCase)
select x;
if (x.Count() == 1 )
{
eVal = Enum.Parse(typeof(T), x.Item(0)) as T;
bRet = true;
}
return bRet;
}
Не уверен, что это правильно или есть другой простой способ разбора строки в значение MyEnum?