我对我的代码有点强迫症,并想知道其他人如何构建以下样本控制流程。我还没有找到任何通过我的“漂亮”代码测试的东西。
var records = repo.GetRecords(batch:10);
while(records.Any())
{
var processed = ProcessRecords(records);
repo.DeleteRecords(processed);
records = repo.GetRecords(batch:10);
}
由于
答案 0 :(得分:1)
while (true)
{
var records = repo.GetRecords(batch:10);
if (!records.Any())
break;
var processed = ProcessRecords(records);
repo.DeleteRecords(processed);
}
答案 1 :(得分:1)
与上面的@John Kugleman类似,但是使用while而不是for。
while (true)
{
var records = repo.GetRecords(batch:10);
if (!records.Any()) break;
var processed = ProcessRecords(records);
repo.DeleteRecords(processed);
}
你也可以找到这样的问题:
Split List into Sublists with LINQ
询问如何“chunkify”一系列项目。该技术可能适用于您的情况,也可能不适用。
假设一个Chunk扩展方法(类似于@TickleMeElmo的回答或者来自@JaredPar的回答),你的代码可能如下所示:
foreach (var chunk in repo.GetRecords().Chunk(10))
{
var processed = ProcessRecords(chunk);
repo.DeleteRecords(processed);
}
如果你已经在你的存储库中内置了某种“chunkification”,那么这个成语可能效果不好。