Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Datatable-基于某些内部索引使用linq筛选记录_Linq - Fatal编程技术网

Datatable-基于某些内部索引使用linq筛选记录

Datatable-基于某些内部索引使用linq筛选记录,linq,Linq,我有一个包含大量记录的数据表。我有一个范围,比如下限=10和上限=200我希望从第10行到第200行拉取记录。 现在我不想在datatable中添加任何新的基于索引的列。在linq的帮助下,有没有办法根据一些内部数据表索引提取行集?我猜,datatable必须隐式地维护一些行索引 请建议。好的,您可以使用: 这将使用DataTable的“自然”顺序。不过,您需要确保数据表是按有用的顺序填充的。谢谢您的帮助。在我的例子中,它将是var records=table.AsEnumerable().Sk

我有一个包含大量记录的数据表。我有一个范围,比如下限=10上限=200我希望从第10行到第200行拉取记录。

现在我不想在datatable中添加任何新的基于索引的列。在linq的帮助下,有没有办法根据一些内部数据表索引提取行集?我猜,datatable必须隐式地维护一些行索引

请建议。

好的,您可以使用:


这将使用DataTable的“自然”顺序。不过,您需要确保数据表是按有用的顺序填充的。

谢谢您的帮助。在我的例子中,它将是var records=table.AsEnumerable().Skip(9).Take(200)@卡兰:那你是想从1开始排吗?在这种情况下,是的,你会跳过(9)。。。但是如果你拿了200张唱片,你就会在第209行结束。Take不是索引上限-它是对返回序列大小的限制。DataTable dtInvitees=ds.Tables[0];IEnumerable query=dtInvitees.AsEnumerable().Skip(10).Take(191);在linq操作之后,如何再次获取数据表?请帮忙。@Karan:哦,你的意思是你想实际更改数据表?这不是您在LINQ中所做的事情,它只是关于查询。您可能能够基于序列构建新的DataTable,但是如果您只想修改原始的DataTable,您可能不应该使用LINQ来进行修改。因此,我应该将记录转换回新的DataTable或dataview。
var records = table.AsEnumerable().Skip(10).Take(191);