Здесь много вопросов о преобразовании строк в значение перечисления. Как правило, ответ выглядит примерно как ответы на этот вопрос:
StatusEnum MyStatus = (StatusEnum) Enum.Parse( typeof(StatusEnum), "Active", true );
Хотя это вполне разумный ответ, и вы можете написать метод для упрощения вызова, он не отвечает на вопрос почему. Enum.Parse() возвращает object
вместо соответствующее значение перечисления. Почему мне нужно отправить его на StatusEnum
?
Edit:
В принципе, возникает вопрос, почему такая функция не является частью класса Enum?
public static T Parse<T>(string value) where T: struct
{
return (T)Enum.Parse(typeof (T), value);
}
Эта функция работает отлично, делает именно то, что вы ожидаете. StatusEnum e = Enum.Parse<StatusEnum>("Active");
.