不确定如何用词表达我想要的东西。我需要在给定输入的情况下设置枚举类型。示例代码如下:
Class Foo{
enum Color{
BLUE,
RED,
YELLOW
}
public Color color;
public setColor(string col){
var colorsEnum = Enum.GetNames(typeof(Color));
foreach(var c in colorsEnum){
if(c == col)
color = c.getEnum();
}
}
}
答案 0 :(得分:1)
您甚至不需要遍历这些名称,为什么不使用Contains
?
这里的诀窍是使用Enum.Parse
。在检查颜色有效后,只需调用Enum.Parse
:
public void setColor(string col){
if (Enum.GetNames(typeof(Color)).Contains(col)) {
color = (Color)Enum.Parse(typeof(Color), col);
}
}
答案 1 :(得分:0)
使用Enum.TryParse<Color>(string value, bool ingnoreCase, out Color result)
将字符串转换为枚举值。
Color color;
if (!Enum.TryParse<Color>("blUE", true, out color))
{
color = Color.YELLOW; // default value
}