2008-10-25 81 views
57

我想在一个DataTable的Columns属性进行一个简单的LINQ查询:查询DataColumnCollection与LINQ

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

然而,我所得到的是这样的:

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

我怎样才能让DataColumnCollection和LINQ一起玩呢?

回答

100

如何:

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

@Dave:原因是什么导致了这个问题?我们怎么做Cast()? – 2009-03-13 17:20:20

12

您还可以使用:

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

这将有效地做同样的戴维代码:“在查询表达式,显式类型迭代变量转化为一个调用Cast(IEnumerable)“,根据Enumerable.Cast<TResult> Method MSDN文章。