Конвертирование Enum в C#

238
04 июня 2018, 08:50

Возможно глупый вопрос. Можно ли преобразовать один enum в другой? К пример
Namespace1.Enum1 a = Namespace1.Enum1.Value1.
Namespace2.Enum1 b = (Namespace2.Enum1)a.
Если да, то при каких условия, распишите пожалуйста

Answer 1

Можно. Предположим у вас два перечисления.

enum Enum1
{
    AA,
    BB,
    CC
}
enum Enum2
{
    AA,
    BB
}

Для преобразования вы сначала должны получить имя элемента первого перечисления и с помощью Enum.Parse() преобразовать во второй.

// Предположим это элемент первого Enum1
Enum1 first = Enum1.AA; 
// Получаем его имя в строковом формате
string firstName = first.ToString();
// try нужен в случае, если во втором перечислении отсутствует элемент из первого (например Enum1.CC)
try 
{
   // Преобразуем во второй Enum2
   Enum2 second = (Enum2)Enum.Parse(typeof(Enum2), firstName); 
}
catch { }

Или можно парсить с помощью TryParse.

if (Enum.TryParse(firstName, out Enum2 result))
{
    // Тут код в случае, если получилось преобразовать
    // Результатом является result
}
READ ALSO
ContexMenuStrip картинка

ContexMenuStrip картинка

Как и дальше убирать место для картинки?!

260
3d объект на 2d сцене

3d объект на 2d сцене

Можно ли такое сделать? Есть поле, и на нем должен появляться 3д объект, само поле в 2д, камера сверхуБудет ли взаимодействовать физика 3д объекта...

213
Поиск по БД УСЛОВИЕ

Поиск по БД УСЛОВИЕ

Ребята, как сделать сам поиск я знаю, запросы и все такоеПомогите мне, возможно ли написать красивое условие если несколько разновидностей...

252
Entity Framework не отображает свойства

Entity Framework не отображает свойства

Есть два класса Author и Book

240