Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- namespace ConsoleApplication11 {
- class Program {
- static void Main(string[] args) {
- var items = Enumerable.Range(0, 33).ToList();
- Console.WriteLine("chunks1");
- var chunks1 = items.ToChunks(10);
- foreach (var chunk in chunks1)
- Console.WriteLine(string.Join(", ", chunk));
- Console.WriteLine("chunks2");
- var chunks2 = items.ToNChunks(9);
- foreach (var chunk in chunks2)
- Console.WriteLine(string.Join(", ", chunk));
- Console.ReadLine();
- }
- }
- public static class SeqExt {
- public static IEnumerable<List<T>> ToChunks<T>(this IEnumerable<T> items, int chunkSize) {
- List<T> chunk = new List<T>(chunkSize);
- foreach (var item in items) {
- chunk.Add(item);
- if (chunk.Count == chunkSize) {
- yield return chunk;
- chunk = new List<T>(chunkSize);
- }
- }
- if (chunk.Any())
- yield return chunk;
- }
- public static IEnumerable<List<T>> ToNChunks<T>(this IReadOnlyCollection<T> items, int chunksCount) {
- var chunkSize = items.Count / chunksCount;
- return items.ToChunks(chunkSize);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement