using System.Collections.Generic; namespace SupaLidlGame.Debug; public class Iterator where T : struct { public int Line { get; protected set; } = 1; public int Column { get; protected set; } = 0; public int Index { get; protected set; } = -1; protected List _elements; public Iterator(T[] elements) { _elements = new List(elements); } public Iterator(List elements) { _elements = new List(elements); } public T GetNext(int offset = 0) { if (Index + offset + 1 < _elements.Count) { return _elements[Index + offset + 1]; } return default; } public virtual T MoveNext() { T next = GetNext(); Index++; return next; } public virtual void MoveBack() { Index--; } }