使用 LINQ Skip() 从数据表中删除第一行
本文关键字:一行 删除 数据表 LINQ Skip 使用 | 更新日期: 2023-09-27 18:32:32
我正在尝试使用 LINQ 的 Skip()
方法从 DataTable 中删除第一行。 到目前为止,我有
EnumerableRowCollection<DataRow> erc = myDataTable.AsEnumerable().Skip(1);
但这会引发语法错误:
无法隐式转换类型 'System.Collections.Generic.IEnumerable' to 'System.Data.EnumerableRowCollection'.一 存在显式转换(您是否缺少强制转换?
我错过了什么?将其放在 EnumerableRowCollection 中的目标是这样我就可以再做一次调用:
DataTable myDataTableMinusFirstRow = erc.Any() ? erc.CopyToDataTable() : myDataTable.Clone();
我知道还有其他方法可以做到这一点,例如删除行而不跳过,但这或多或少是为了学习如何更好地使用 skip。
您正在尝试插入IEnumerable<DataRow>
以EnumerableRowCollection<DataRow>
。
您需要创建一个新EnumerableRowCollection
,其中包含该IEnumerable<T>
中的DataRows
或相应地更改变量类型。
只需将行更改为:
IEnumerable<DataRow> erc = myDataTable.AsEnumerable().Skip(1);
您可以使用erc.CopyToDataTable()
来实例化具有这些行的DataTable
。