2012-07-19 49 views
3

我有以下枚举:一个字符串值指定到具有相应的字符串的值作为枚举常数类型枚举的属性C#

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 = hintValue; 

,这样的暗示就等于

Hint = PageIdsOptions.PageID_Signup; 

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

回答

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 
    } 
+0

你打我吧,+ 1 – Jodrell 2012-07-19 10:04:46

2
try 
{ 
    var value = Enum.Parse(typeof(PageIdsOptions), hintValue); 
} 
catch(ArgumentException e) 
{ 
    //todo 
} 
0

if (!Enum.TryParse(hintValue, out Hint)) 
{ 
    // throw an exception because hintValue did not parse. 
}