Ответ 1
Что-то вроде этого, что вы ищете?
TestClass.testColor = (Color)Enum.Parse(typeof(Color), collectionofstrings[23]);
У меня есть перечисление:
public enum Color
{
Red,
Blue,
Green,
}
Теперь, если я прочитаю эти цвета как литеральные строки из файла XML, как я могу преобразовать его в цветной тип перечисления.
class TestClass
{
public Color testColor = Color.Red;
}
Теперь, когда вы устанавливаете этот атрибут с помощью такой строки, я получаю очень суровое предупреждение от компилятора.: D Невозможно преобразовать из строки в цвет.
Любая помощь?
TestClass.testColor = collectionofstrings[23].ConvertToColor?????;
Что-то вроде этого, что вы ищете?
TestClass.testColor = (Color)Enum.Parse(typeof(Color), collectionofstrings[23]);
Try:
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"
}
Вам нужно использовать Enum.Parse, чтобы преобразовать вашу строку в правильное значение цвета цвета:
TestClass.testColor = (Color)Enum.Parse(typeof(Color), collectionofstrings[23], true);
Как говорили все остальные:
TestClass.testColor = (Color) Enum.Parse(typeof(Color), collectionofstrings[23]);
Если у вас проблема, потому что collectionofstrings
- это набор объектов, попробуйте следующее:
TestClass.testColor = (Color) Enum.Parse(
typeof(Color),
collectionofstrings[23].ToString());