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

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

然而,我得到的是:

  

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

如何让DataColumnCollection与LINQ一起玩得很好?

有帮助吗?

解决方案

怎么样:

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(IEnumerable)<!>“的调用,根据 Enumerable.Cast<TResult> Method MSDN文章。

使用Linq方法语法:

var x = myDataTable.Columns.Cast<DataColumn>().Select(c => c.ColumnName);
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top