Estoy tratando de hacer un método para enumerar cualquier enumeración, devolviendo una lista que contiene cada nombre y valor constante.Cast <T>() con una variable de tipo
Aquí está mi código:.
Type enumType = typeof(SomeEnum);
var enumConstants =
Enum.GetValues(enumType).
Cast<enumType>().
Select(x => new { Value = (int) x, Name = x.ToString() });
(Declaro enumType
en este fragmento, pero es de hecho declarada en mi firma método MyMethod(Type enumType)
No soy mostrando mi método de firma, ya que requeriría introducir alguna estructura estoy usando, lo que no es relevante para el problema aquí)
el problema es que este código no se compila y yo estoy recibiendo en la línea de la siguiente Cast<enumType>().
er ROR:
The type or namespace name 'enumType' could not be found (are you missing a using directive or an assembly reference?)
No entiendo cómo puede ser desconocida enumType
, sólo declaró que en la línea anterior!
Tenga en cuenta que en la línea Enum.GetValues(enumType).
, no hay error marcado.
Me estoy perdiendo algo aquí? ¿Hay algunos trucos LINQ jugando?
parámetros de tipo genérico debe estar 't', no' typeof (T) '. –