C# 在数组类上使用Linq扩展
我正在尝试从C# 在数组类上使用Linq扩展,c#,arrays,select,ienumerable,linq-to-objects,C#,Arrays,Select,Ienumerable,Linq To Objects,我正在尝试从枚举构建一个选择列表 为什么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查询本
枚举
构建一个选择列表
为什么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查询本质上不一样吗?使用方法获取可以使用LINQ查询的IEnumerable
:
var values = Enum.GetValues(typeof(MyEnum));
var test = values.OfType<int>().Select(x => x);
var values=Enum.GetValues(typeof(MyEnum));
var test=values.OfType().Select(x=>x);