好像我错过了指令?System.Data.DataTableCollection不包含'First'的定义

Ano*_*ous 3 c# linq

我有一个数据集,我在行上运行foreach循环...

foreach(var row in input.Tables.First().Rows)
{....
Run Code Online (Sandbox Code Playgroud)

但是我收到了这个编译错误:

错误1'System.Data.DataTableCollection'不包含'First'的定义,也没有扩展方法'First'接受类型为'System.Data.DataTableCollection'的第一个参数'(你是否缺少using指令或者装配参考?)

看起来我似乎错过了一个指令,但我正在使用System.Linq,并且我还添加了System.Data.DataSetExtensions作为参考.

我错过了什么?任何帮助将不胜感激.该项目设置为.NET 4.5

JLR*_*she 6

签名First()是:

public static TSource First<TSource>(
    this IEnumerable<TSource> source
)
Run Code Online (Sandbox Code Playgroud)

所以它必须被调用IEnumerable<T>.

DataTableCollection没有实现IEnumerable<T>.

为了在其上使用大多数Linq方法(以及其他实现IEnumerable但未实现的类型IEnumerable<T>),您需要使用.Cast<T>().OfType<T>():

input.Tables.Cast<DataTable>().First().Rows
Run Code Online (Sandbox Code Playgroud)