使用LINQ Skip()从DataTable中删除第一行

时间:2016-01-29 17:54:38

标签: c# .net linq

我正在尝试使用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();

我知道还有其他方法可以做到这一点,例如删除没有跳过的行,但这或多或少是为了学习目的,如何更好地使用跳过。

1 个答案:

答案 0 :(得分:1)

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

您需要在EnumerableRowCollection内创建一个DataRows的新IEnumerable<T>,或者相应地更改变量类型。

只需将该行更改为:

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

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