将字符串值分配给Enum类型的属性,该属性具有相应的字符串值作为可枚举的const C#

时间:2012-07-19 09:54:37

标签: c# enums

我有以下枚举:

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;

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

3 个答案:

答案 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.
}