Не может преобразовать строку в Перечислимый тип, который я создал [копируют]

Этот вопрос уже имеет ответ здесь:

У меня есть перечисление:

public enum Color
{
    Red,
    Blue,
    Green,
}

Теперь, если я считал те цвета как литеральные строки от XML-файла, как я могу преобразовать его в перечислимый цвет шрифта.

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

Теперь при установке того атрибута при помощи литеральной строки как так, я получаю очень резкое предупреждение из компилятора.: D не Может преобразовать из строки для Окраски.

Какая-либо справка?

TestClass.testColor = collectionofstrings[23].ConvertToColor?????;
15
задан Sergio Tapia 4 January 2010 в 00:12
поделиться

4 ответа

Вы ищете что-то подобное?

TestClass.testColor = (Color)Enum.Parse(typeof(Color), collectionofstrings[23]);
33
ответ дан 1 December 2019 в 00:54
поделиться

Как все говорили:

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

Если у вас проблема, потому что коллекция строк - это коллекция объектов, тогда попробуйте следующее:

TestClass.testColor = (Color) Enum.Parse(
    typeof(Color), 
    collectionofstrings[23].ToString());
0
ответ дан 1 December 2019 в 00:54
поделиться

Попробуйте:

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"
}
8
ответ дан 1 December 2019 в 00:54
поделиться

Вам нужно использовать Enum.Parse для преобразования строки в правильное значение перечисления цветов:

TestClass.testColor = (Color)Enum.Parse(typeof(Color), collectionofstrings[23], true);
0
ответ дан 1 December 2019 в 00:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: