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