From f998e016550b4aa70e822e841f9ebc01b3b8e4af Mon Sep 17 00:00:00 2001 From: "a.bozhenov" Date: Wed, 9 Oct 2019 18:53:08 +0300 Subject: [PATCH] Update EnumerableExtensions.cs --- .../Extensions/EnumerableExtensions.cs | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/ZeroLevel/Services/Extensions/EnumerableExtensions.cs b/ZeroLevel/Services/Extensions/EnumerableExtensions.cs index 4acd2fc..bfb02b7 100644 --- a/ZeroLevel/Services/Extensions/EnumerableExtensions.cs +++ b/ZeroLevel/Services/Extensions/EnumerableExtensions.cs @@ -31,5 +31,25 @@ namespace ZeroLevel { return !IsEmpty(collection); } + + public static IEnumerable Batch(this IEnumerator source, int size) + { + yield return source.Current; + for (var i = 1; i < size && source.MoveNext(); i++) + { + yield return source.Current; + } + } + + public static IEnumerable> Chunkify(this IEnumerable source, int size) + { + using (var enumerator = source.GetEnumerator()) + { + while (enumerator.MoveNext()) + { + yield return Batch(enumerator, size); + } + } + } } } \ No newline at end of file