2011-04-20 75 views
5

我试图从Enum构建SelectList在Array类上使用Linq扩展

为什么Linq扩展方法在Array上不可用?

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

但我可以写这样的,它编译...

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

我通常不使用语法的这种风格,所以我真的不熟悉,但是,这不是”上述基本上与不编译的lambda查询相同?

回答

8

使用OfType方法获取IEnumerable<T>可以查询使用LINQ:

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