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

发布于 2024-08-16 07:30:10 字数 408 浏览 5 评论 0原文

我有一个枚举:

public enum Color
{
    Red,
    Blue,
    Green,
}

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

class TestClass
{
    public Color testColor = Color.Red;
}

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

有什么帮助吗?

TestClass.testColor = collectionofstrings[23].ConvertToColor?????;

I have an enum:

public enum Color
{
    Red,
    Blue,
    Green,
}

Now if I read those colors as literal strings from an XML file, how can I convert it to the enum type Color.

class TestClass
{
    public Color testColor = Color.Red;
}

Now when setting that attribute by using a literal string like so, I get a very harsh warning from the compiler. :D Can't convert from string to Color.

Any help?

TestClass.testColor = collectionofstrings[23].ConvertToColor?????;

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

作妖 2024-08-23 07:30:10

您正在寻找这样的东西吗?

TestClass.testColor = (Color)Enum.Parse(typeof(Color), collectionofstrings[23]);

Is something like this what you're looking for?

TestClass.testColor = (Color)Enum.Parse(typeof(Color), collectionofstrings[23]);
雨的味道风的声音 2024-08-23 07:30:10

尝试:

TestClass.testColor = (Color)Enum.Parse(typeof(Color), collectionofstrings[23]);

请参阅有关 Enum 的文档

<编辑:在 .NET 4.0 中,您可以使用一种更类型安全的方法(也是一种在解析失败时不会引发异常的方法):

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

Try:

TestClass.testColor = (Color)Enum.Parse(typeof(Color), collectionofstrings[23]);

See documentation about Enum

Edit: in .NET 4.0 you can use a more type-safe method (and also one that doesn't throw exceptions when parsing fails):

Color myColor;
if (Enum.TryParse(collectionofstring[23], out myColor))
{
    // Do stuff with "myColor"
}
つ可否回来 2024-08-23 07:30:10

您需要使用 Enum.Parse 将字符串转换为正确的 Color 枚举值:

TestClass.testColor = (Color)Enum.Parse(typeof(Color), collectionofstrings[23], true);

You need to use Enum.Parse to convert your string to the correct Color enum value:

TestClass.testColor = (Color)Enum.Parse(typeof(Color), collectionofstrings[23], true);
你是年少的欢喜 2024-08-23 07:30:10

正如其他人所说:

TestClass.testColor = (Color) Enum.Parse(typeof(Color), collectionofstrings[23]);

如果您因 collectionofstrings 是对象集合而遇到问题,请尝试以下操作:

TestClass.testColor = (Color) Enum.Parse(
    typeof(Color), 
    collectionofstrings[23].ToString());

As everyone else has said:

TestClass.testColor = (Color) Enum.Parse(typeof(Color), collectionofstrings[23]);

If you're having an issue because the collectionofstrings is a collection of objects, then try this:

TestClass.testColor = (Color) Enum.Parse(
    typeof(Color), 
    collectionofstrings[23].ToString());
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文