我有一个对象集合,需要接受100个对象的批处理,然后对它们进行一些处理,直到没有任何对象需要处理.
而不是循环每个项目并抓住100个元素,然后下一百个等有一个更好的方式与linq做它?
非常感谢
And*_*rey 11
static void test(IEnumerable<object> objects)
{
while (objects.Any())
{
foreach (object o in objects.Take(100))
{
}
objects = objects.Skip(100);
}
}
Run Code Online (Sandbox Code Playgroud)
:)
Luk*_*keH 11
int batchSize = 100;
var batched = yourCollection.Select((x, i) => new { Val = x, Idx = i })
.GroupBy(x => x.Idx / batchSize,
(k, g) => g.Select(x => x.Val));
// and then to demonstrate...
foreach (var batch in batched)
{
Console.WriteLine("Processing batch...");
foreach (var item in batch)
{
Console.WriteLine("Processing item: " + item);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3707 次 |
| 最近记录: |