3

我有以下枚举:

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;

如何才能做到这一点?任何帮助将不胜感激!谢谢你!

4

3 回答 3

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
     }
于 2012-07-19T09:57:11.657 回答
2
try
{
    var value = Enum.Parse(typeof(PageIdsOptions), hintValue);
}
catch(ArgumentException e)
{
   //todo
}
于 2012-07-19T09:59:46.843 回答
0

怎么样

if (!Enum.TryParse(hintValue, out Hint))
{
    // throw an exception because hintValue did not parse.
}
于 2012-07-19T10:04:02.860 回答