fork(1) download
  1. using System;
  2. using System.Collections.Generic;
  3.  
  4. class Program
  5. {
  6. static void Main()
  7. {
  8. var input = new List<List<string>>
  9. {
  10. new List<string> {"a", "b", "c"},
  11. new List<string> {"d", "e"},
  12. new List<string> {"f", "g", "h", "i"},
  13. new List<string> {"j"},
  14. new List<string> {"k", "l"}
  15. };
  16. var chunks = Split(input, 2);
  17. foreach (var chunk in chunks)
  18. {
  19. Console.WriteLine("Chunk");
  20. foreach (var item in chunk)
  21. {
  22. Console.WriteLine(string.Join(",", item.ToArray()));
  23. }
  24. Console.WriteLine("---");
  25. }
  26. Console.ReadLine();
  27. }
  28.  
  29. public static IEnumerable<IEnumerable<T>> Split<T>(IEnumerable<T> source, int chunkSize)
  30. {
  31. var chunk = new List<T>(chunkSize);
  32. foreach (var item in source)
  33. {
  34. chunk.Add(item);
  35. if (chunk.Count == chunkSize)
  36. {
  37. yield return chunk;
  38. chunk.Clear();
  39. }
  40. }
  41.  
  42. if (chunk.Count > 0)
  43. {
  44. yield return chunk;
  45. }
  46. }
  47. }
  48.  
Success #stdin #stdout 0.03s 33928KB
stdin
Standard input is empty
stdout
Chunk
a,b,c
d,e
---
Chunk
f,g,h,i
j
---
Chunk
k,l
---