无法将字符串转换为我创建的枚举类型

Ser*_*pia 15 c# string enums

我有一个枚举:

public enum Color
{
    Red,
    Blue,
    Green,
}
Run Code Online (Sandbox Code Playgroud)

现在,如果我将这些颜色作为XML文件中的文字字符串读取,我该如何将其转换为枚举类型Color.

class TestClass
{
    public Color testColor = Color.Red;
}
Run Code Online (Sandbox Code Playgroud)

现在,当使用像这样的文字字符串设置该属性时,我会收到编译器发出的非常严厉的警告.:D无法从字符串转换为颜色.

有帮助吗?

TestClass.testColor = collectionofstrings[23].ConvertToColor?????;
Run Code Online (Sandbox Code Playgroud)

Dmi*_*ant 33

你正在寻找的是这样的东西吗?

TestClass.testColor = (Color)Enum.Parse(typeof(Color), collectionofstrings[23]);
Run Code Online (Sandbox Code Playgroud)


San*_*ken 8

尝试:

TestClass.testColor = (Color)Enum.Parse(typeof(Color), collectionofstrings[23]);
Run Code Online (Sandbox Code Playgroud)

请参阅有关Enum的文档

编辑:在.NET 4.0中,您可以使用更安全类型的方法(以及在解析失败时不会抛出异常的方法):

Color myColor;
if (Enum.TryParse(collectionofstring[23], out myColor))
{
    // Do stuff with "myColor"
}
Run Code Online (Sandbox Code Playgroud)

  • 然后你可能在Parse调用前忘记了对Color的转换.这肯定是从字符串到枚举的方法. (2认同)