using System.Collections.Generic;
static int[][] data = new int[][] {
new int[]{ 5, 10, 33, 45 },
new int[]{ 3, 23, 44, 50, 700 },
static int[] expectedResult = new int[] { 5, 10, 33, 45, 3, 23, 44, 50, 700, 7, 55, 105 };
static int[] EnumerateAll(int[][] toEnumerate)
throw new NotImplementedException();
static (int[], string) EnumerateWithResume(int[][] data, int batchSize, string resumeToken)
throw new NotImplementedException();
public class MoreComplicatedArray
public MoreComplicatedArray(int[] data)
public (int[], int) GetItems(int resumeToken, int pageSize)
return (arrayData.AsSpan(resumeToken, pageSize).ToArray(), resumeToken+pageSize);
static (int[], string) MoreComplicatedEnumerateWithResume(MoreComplicatedArray[] data, int batchSize, string resumeToken)
throw new NotImplementedException();
public static void Main()
List<int> withoutResume = new List<int>();
withoutResume.AddRange(EnumerateAll(data));
Console.WriteLine($"Hit exception {e}");
bool withoutResumeWorksProperly = Enumerable.SequenceEqual(expectedResult, withoutResume);
Console.WriteLine($"EnumerateAll successful: {withoutResumeWorksProperly}");
List<int> withResume = new List<int>();
(result, resume) = EnumerateWithResume(data, pageSize, resume);
if(result == null) break;
withResume.AddRange(result);
Console.WriteLine($"Hit exception {e}");
bool withResumeWorksProperly = Enumerable.SequenceEqual(expectedResult, withResume);
Console.WriteLine($"EnumerateAllWithResume successful: {withResumeWorksProperly}");