我有一个枚举:
public enum Color
{
Red,
Blue,
Green,
}
现在,如果我将这些颜色作为XML文件中的文字字符串读取,我该如何将其转换为枚举类型Color。
class TestClass
{
public Color testColor = Color.Red;
}
现在,当使用像这样的文字字符串设置该属性时,我会收到编译器发出的非常严厉的警告。 :D无法从字符串转换为颜色。
任何帮助?
TestClass.testColor = collectionofstrings[23].ConvertToColor?????;
答案 0 :(得分:32)
这就是你想要的东西吗?
TestClass.testColor = (Color)Enum.Parse(typeof(Color), collectionofstrings[23]);
答案 1 :(得分:8)
尝试:
TestClass.testColor = (Color)Enum.Parse(typeof(Color), collectionofstrings[23]);
.NET 4.0中的编辑:可以使用更安全的类型(也可以在解析失败时抛出异常):
Color myColor;
if (Enum.TryParse(collectionofstring[23], out myColor))
{
// Do stuff with "myColor"
}
答案 2 :(得分:0)
您需要使用Enum.Parse将字符串转换为正确的Color枚举值:
TestClass.testColor = (Color)Enum.Parse(typeof(Color), collectionofstrings[23], true);
答案 3 :(得分:0)
正如其他人所说:
TestClass.testColor = (Color) Enum.Parse(typeof(Color), collectionofstrings[23]);
如果您遇到问题,因为collectionofstrings
是对象的集合,请尝试以下操作:
TestClass.testColor = (Color) Enum.Parse(
typeof(Color),
collectionofstrings[23].ToString());