gpt4 book ai didi

c# - 在 LINQ 中创建批处理

转载 作者:IT王子 更新时间:2023-10-29 03:39:35 26 4
gpt4 key购买 nike

有人可以建议一种在 LINQ 中创建特定大小的批处理的方法吗?

理想情况下,我希望能够按可配置数量的 block 执行操作。

最佳答案

您无需编写任何代码。使用 MoreLINQ批处理方法,它将源序列分批放入一定大小的桶中(MoreLINQ 可以作为 NuGet 包提供,您可以安装):

int size = 10;
var batches = sequence.Batch(size);

实现为:

public static IEnumerable<IEnumerable<TSource>> Batch<TSource>(
this IEnumerable<TSource> source, int size)
{
TSource[] bucket = null;
var count = 0;

foreach (var item in source)
{
if (bucket == null)
bucket = new TSource[size];

bucket[count++] = item;
if (count != size)
continue;

yield return bucket;

bucket = null;
count = 0;
}

if (bucket != null && count > 0)
yield return bucket.Take(count).ToArray();
}

关于c# - 在 LINQ 中创建批处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13731796/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com