82

我正在尝试对 DataTable 的 Columns 属性执行简单的 LINQ 查询:

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

但是,我得到的是:

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

如何让 DataColumnCollection 与 LINQ 配合使用?

4

3 回答 3

138

怎么样:

var x = from c in dt.Columns.Cast<DataColumn>()
        select c.ColumnName;
于 2008-10-26T00:00:54.847 回答
15

您还可以使用:

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

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

于 2012-04-03T15:09:44.197 回答
11

使用 Linq 方法语法:

var x = myDataTable.Columns.Cast<DataColumn>().Select(c => c.ColumnName);
于 2018-03-15T14:59:23.893 回答