μμ μ λΈλ‘κ·Έμ μ¬λ Έλ λ΄μ©μ λλ€.
μ¬μ©μ½λ:
foreach(var n in 0..10)
{
//...
}
foreach(var n in ..10)
{
//...
}
ꡬν μ½λ :
public ref struct RangeEnumerator
{
private int _current;
private int _end;
public int Current => _current++;
public bool MoveNext() => _current < _end;
public RangeEnumerator(Range range)
{
_current = range.Start.Value;
_end = range.End.Value;
}
}
public static class RangeExtentions
{
public static RangeEnumerator GetEnumerator(this Range range)
{
return new RangeEnumerator(range);
}
}