【发布时间】:2016-03-08 23:53:10
【问题描述】:
我有 20,000 行的数据表,每次处理 5000 行的最佳方法是什么? 我也想关心性能
dataTable.AsEnumerable().Skip(x).Take(y)
这样可以吗?
【问题讨论】:
-
你使用实体框架吗?
标签: c# asp.net-mvc datatable
我有 20,000 行的数据表,每次处理 5000 行的最佳方法是什么? 我也想关心性能
dataTable.AsEnumerable().Skip(x).Take(y)
这样可以吗?
【问题讨论】:
标签: c# asp.net-mvc datatable
这应该可以正常工作。 Linq 的 Skip 方法应该运行得非常快。我想这可以说取决于您的 DataRows 有多少内容,但是有 3 列我得到了几乎即时的调用:
DataTable table = TwentyKRows();
for (int i = 0; i < 4; i++)
{
DateTime before = DateTime.Now;
var test = table.AsEnumerable().Skip(5000 * i).Take(5000);
DateTime after = DateTime.Now;
TimeSpan ts = after - before;
Console.WriteLine(ts.ToString());
}
输出:
00:00:00.0099991
00:00:00
00:00:00
00:00:00
【讨论】: