在Array类上使用Linq扩展

fea*_*net 7 c# arrays ienumerable linq-to-objects select

我正在努力建立SelectList一个Enum.

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

var values = Enum.GetValues(typeof(MyEnum));
var test = values.Select(x => x); // compile error
Run Code Online (Sandbox Code Playgroud)

但我可以这样写它并编译......

var test = from Enum e in values select new { e };
Run Code Online (Sandbox Code Playgroud)

我通常不会使用这种语法,所以我不是很熟悉它,但上面的lambda查询与上面的编译不一样吗?

vol*_*pav 9

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

var values = Enum.GetValues(typeof(MyEnum));
var test = values.OfType<int>().Select(x => x);
Run Code Online (Sandbox Code Playgroud)