IEnumerator это интерфейс для итератора, имеет свойство Current (текущий элемент), метод MoveNext (чтобы перейти к следующему элементу, меняет значение Current). foreach автоматически проходит по всем элементам итератора
IEnumerable имеет метод GetEnumerator, который создает новый итератор