2011-04-20 5 views
5

Estoy tratando de construir un SelectList desde un Enum.Usando la extensión Linq en la clase Array

¿Por qué los métodos de extensión Linq no están disponibles en Array?

var values = Enum.GetValues(typeof(MyEnum)); 
var test = values.Select(x => x); // compile error 

Pero puedo escribirlo de esta manera y que compila ...

var test = from Enum e in values select new { e }; 

normalmente no suelo utilizar este estilo de sintaxis así que no estoy muy familiarizado con él, pero ISN' t lo anterior esencialmente lo mismo que la consulta lambda que no compila?

Respuesta

8

Uso OfType método para obtener un IEnumerable<T> que se puede consultar mediante LINQ:

var values = Enum.GetValues(typeof(MyEnum)); 
var test = values.OfType<int>().Select(x => x); 
Cuestiones relacionadas