Files
Disco/Disco.Services/Extensions/EnumerableExtensions.cs
T
2017-03-25 15:29:51 +11:00

30 lines
709 B
C#

using System.Collections.Generic;
namespace Disco
{
public static class EnumerableExtensions
{
public static IEnumerable<List<TSource>> Chunk<TSource>(this IEnumerable<TSource> source, int ChunkSize)
{
List<TSource> buffer = new List<TSource>(ChunkSize);
foreach (var item in source)
{
buffer.Add(item);
if (buffer.Count == ChunkSize)
{
yield return buffer;
buffer = new List<TSource>();
}
}
// Return any additional items
if (buffer.Count > 0)
yield return buffer;
}
}
}