在Linq中创建批次

在Linq中创建批次,第1张

在Linq中创建批次

您无需编写任何代码。使用MoreLINQ
Batch方法,它将源序列分批处理成大小的存储桶(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();}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5588192.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-15
下一篇 2022-12-14

发表评论

登录后才能评论

评论列表(0条)

保存