2013-05-28 99 views
2

所以我有一個字符串,我想從一個枚舉中獲取一個值,以與字符串相同的名稱返回。例如:如何返回與給定字符串匹配的枚舉值?

enum Types{ 
    one, 
    two, 
    three 
} 

private Types getType(string value){ //Let's say value is "two" 
    return Types.value;    //This should return the enum "two" of Types 
} 

我希望我說得夠清楚!

回答

10

使用Enum.Parse

var t = (Types)Enum.Parse(typeof(Types), "two"); 
+1

是啊。如果你使用.NET 4+,你也可以使用TryParse()來避免處理可能的異常。 –

+0

謝謝,我想我應該使用解析,而我嘗試了一些東西了,但我不能讓它工作莫名其妙! –

+1

如果您不能使用TryParse(因爲您使用的是舊.NET),請嘗試使用Enum.IsDefined來確保安全。 –

4

如果你使用.NET 4.0或更高版本,可以使用Enum.TryParse<TEnum> Method

Types result; 

if (Enum.TryParse<Types>("two", out result)) 
{ 
    // result == Types.two 
} 
相關問題