我正在尝试使用LINQ' Skip()
方法从DataTable中删除第一行。到目前为止我已经
EnumerableRowCollection<DataRow> erc = myDataTable.AsEnumerable().Skip(1);
但是会引发语法错误:
无法隐式转换类型 &#39; System.Collections.Generic.IEnumerable&#39;至 &#39; System.Data.EnumerableRowCollection&#39 ;.一个 存在显式转换(您是否错过了演员?)
我错过了什么?在EnumerableRowCollection中使用它的目的是让我可以再做一次调用:
DataTable myDataTableMinusFirstRow = erc.Any() ? erc.CopyToDataTable() : myDataTable.Clone();
我知道还有其他方法可以做到这一点,例如删除没有跳过的行,但这或多或少是为了学习目的,如何更好地使用跳过。
答案 0 :(得分:1)
您正尝试将IEnumerable<DataRow>
插入EnumerableRowCollection<DataRow>
。
您需要在EnumerableRowCollection
内创建一个DataRows
的新IEnumerable<T>
,或者相应地更改变量类型。
只需将该行更改为:
IEnumerable<DataRow> erc = myDataTable.AsEnumerable().Skip(1);
您可以使用erc.CopyToDataTable()
来实例化DataTable
这些行。