Cast () с переменной типа

Я пытаюсь создать метод для перечисления любого 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?

9
задан Otiel 15 December 2011 в 21:54
поделиться