c# - 在 Array 类上使用 Linq 扩展

标签 c# arrays select ienumerable linq-to-objects

我正在尝试从 Enum 构建一个 SelectList

为什么 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 查询相同吗?

最佳答案

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

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

关于c# - 在 Array 类上使用 Linq 扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5729729/

相关文章:

c# - 在 C# 的同一类中的另一个委托(delegate)函数中使用两个委托(delegate)函数的返回 View

c# - 如何获取计算机中所有打印机的列表

c# - 如何在 WPF 的第二个屏幕中启动第二个应用程序?

Mysql - 查询性能

mysql - 优化 WordPress 插件 "Better WordPress Recent Comments"中的慢查询

c# - 如何创建 "custom protocol"并将其映射到应用程序?

ios - 尝试使 numberOfRowsInSection 计数等于 Swift 中另一个文件的数组计数

C 打印数组数字

java - 如果我的数组达到一定长度,Android 应用程序将无法运行

sql - PostgreSQL:如何使用包含时间戳的字符列