一尘不染

如何批量遍历IEnumerable [重复]

c#

这个问题已经在这里有了答案

在Linq中创建批次 (15个答案)

9个月前关闭。

我正在开发ac#程序,该程序具有一个“
IEnumerable用户”,其中存储了400万用户的ID。我需要遍历Ienummerable并每次提取一个批处理1000个id,以使用另一种方法执行一些操作。

我如何从Ienumerable的开始一次提取1000个id …做其他事情然后获取下一批1000等等?

这可能吗?


阅读 374

收藏
2020-05-19

共1个答案

一尘不染

听起来您需要使用对象的“跳过”和“获取”方法。例:

users.Skip(1000).Take(1000)

这将跳过前1000个,并采用下一个1000。您只需要增加每次通话跳过的数量

您可以将整数变量与“跳过”参数一起使用,并且可以调整要跳过的量。然后可以在方法中调用它。

public IEnumerable<user> GetBatch(int pageNumber)
{
    return users.Skip(pageNumber * 1000).Take(1000);
}
2020-05-19