【发布时间】:2014-01-29 16:52:12
【问题描述】:
假设我们有一个包含 156 个项目的列表,我们需要使用 take 和 skip 方法将它们分成 50 个批次,我已经完成了下面的代码,但不知道如何跳过以前的项目以及其余代码是否正确:
var mailAccounts = mailRepo.GetAllMailAccounts();
int total = mailAccounts.Count;
int batch = 50;
int batchNumbers = total / batch;
for (int i = 0; i < batchNumbers; i++)
{
mailAccounts.Skip(Previous Items).Take(batch);
await FetchEmails(mailAccounts);
}
【问题讨论】:
-
考虑到当底层类型为数组时skip方法不使用索引偏移,并且总是枚举底层项目......这可能会影响性能