ex-int-05-numbers/Numbers/NumberFactory/NumbersEnumerator.cs
2025-05-10 22:58:56 +02:00

57 lines
1.1 KiB
C#

using System.Collections;
namespace Numbers.NumberFactory;
/// <summary>
/// An enumerator for a list of numbers
/// </summary>
/// <inheritdoc cref="IEnumerator{T}" />
public sealed class NumbersEnumerator : IEnumerator<long>
{
/// <summary>
/// Creates a new instance of <see cref="NumbersEnumerator" /> which will enumerate over the given list
/// </summary>
/// <param name="list">List to iterate over</param>
public NumbersEnumerator(List<long> list)
{
List = list;
Index = -1;
}
private int Index { get; set; }
private List<long> List { get; }
public long Current
{
get
{
if (Index < 0 || Index >= List.Count)
{
return -1;
}
return List[Index];
}
}
public void Dispose() { }
object IEnumerator.Current => Current;
public bool MoveNext()
{
if (Index >= List.Count - 1)
{
return false;
}
Index++;
return true;
}
public void Reset()
{
Index = -1;
}
}