我有一个数据集,我在行上运行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
签名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)