我有以下枚举:
public enum PageIdsOptions
{
PageID_News = 1,
PageID_Signup = 2,
PageID_AffiliateSignup = 3,
PageID_Cashier = 4,
PageID_Promotions = 5
}
以及以下属性:
public PageIdsOptions Hint { get; set; }
我收到了一个带有此值的字符串:
string hintValue = "PageID_Signup";
我想将hintValue的值赋给属性Hint:
Hint = hintValue;
以便Hint等于
Hint = PageIdsOptions.PageID_Signup;
如何做到这一点?任何帮助将不胜感激!谢谢!
答案 0 :(得分:4)
使用Enum.Parse方法,(如果hintValue包含任何无效值,则会抛出异常)
Hint = (PageIdsOptions) Enum.Parse(typeof(PageIdsOptions), hintValue);
你也可以使用Enum.TryParse,(如果解析成功与否,这将返回一个布尔值,但不会抛出任何异常)
PageIdsOptions Hint;
if (Enum.TryParse(hintValue, out Hint))
{
//Parsed successfully
}
else
{
// Parsing failed
}
答案 1 :(得分:2)
try
{
var value = Enum.Parse(typeof(PageIdsOptions), hintValue);
}
catch(ArgumentException e)
{
//todo
}
答案 2 :(得分:0)
怎么样
if (!Enum.TryParse(hintValue, out Hint))
{
// throw an exception because hintValue did not parse.
}