使用 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。

使用 LINQ Skip() 从数据表中删除第一行

您正在尝试插入IEnumerable<DataRow>EnumerableRowCollection<DataRow>

您需要创建一个新EnumerableRowCollection,其中包含该IEnumerable<T>中的DataRows或相应地更改变量类型。

只需将行更改为:

IEnumerable<DataRow> erc = myDataTable.AsEnumerable().Skip(1);

您可以使用erc.CopyToDataTable()来实例化具有这些行的DataTable