在C#中将字符串转换为枚举值的最佳方法是什么?
我有一个包含枚举值的HTML选择标记.发布页面时,我想获取值(将以字符串的形式)并将其转换为枚举值.
在一个理想的世界里,我可以这样做:
StatusEnum MyStatus = StatusEnum.Parse("Active");
Run Code Online (Sandbox Code Playgroud)
但那不是有效的代码.
说我有一个枚举,
public enum Colours
{
Red,
Blue
}
Run Code Online (Sandbox Code Playgroud)
我能看到解析它们的唯一方法就是:
string colour = "Green";
var col = (Colours)Enum.Parse(typeOf(Colours),colour);
Run Code Online (Sandbox Code Playgroud)
这将抛出System.ArgumentException,因为"Green"不是Colours枚举的成员.
现在我真的很讨厌在try/catch中包装代码,有没有更简洁的方法来做这个不涉及我迭代每个Colours枚举,并进行字符串比较colour?