使用 LINQ 查询 DataColumnCollection

我试图对 DataTable 的 Columns 属性执行一个简单的 LINQ 查询:

from c in myDataTable.Columns.AsQueryable()
select c.ColumnName

然而,我得到的是:

找不到源类型“ System”的查询模式的实现。Linq.IQueryable’。“选择”未找到。考虑显式指定范围变量‘ c’的类型。

如何让 DataColumnCollection 与 LINQ 良好配合?

36131 次浏览

这个怎么样:

var x = from c in dt.Columns.Cast<DataColumn>()
select c.ColumnName;

你也可以使用:

var x = from DataColumn c in myDataTable.Columns
select c.ColumnName

它将有效地执行与 Dave 的代码相同的操作: “在查询表达式中,显式类型的迭代变量转换为 Cast (IEnumable)的调用”,根据 Enumerable.Cast<TResult> Method MSDN 文章。

使用 Linq 方法语法:

var x = myDataTable.Columns.Cast<DataColumn>().Select(c => c.ColumnName);