Я пытаюсь создать метод для перечисления любого enum , возвращая список, содержащий каждое имя и значение константы.
Вот мой код:
Type enumType = typeof(SomeEnum);
var enumConstants =
Enum.GetValues(enumType).
Cast<enumType>().
Select(x => new { Value = (int) x, Name = x.ToString() });
(Я объявляю enumType
в этом фрагменте, но на самом деле он объявлен в моей сигнатуре метода как MyMethod (Type enumType)
. Я не показываю подпись моего метода, потому что для этого потребуется ввести некоторую структуру , которую я использую, что не имеет отношения к проблеме здесь)
Проблема в том, что этот код не компилируется, и я получаю Cast
строка следующая ошибка:
Тип или имя пространства имен 'enumType' не может быть найдено (вам не хватает директивы using или ссылки на сборку?)
Я не понимаю, как enumType
неизвестно, я только что заявил об этом в предыдущей строке!
Обратите внимание, что в Enum.GetValues (enumType).
, ошибка не отмечена.
Я что-то здесь упускаю? Есть какие-то уловки с LINQ?