Реализация GetEnumerator() - C#
Формулировка задачи:
Здравствуйте, помогите пожалуйста с решением задачи.
Имеется такой код:
Получаю ошибку на строке
class MyClass
{
int[] arr;
public MyClass(int[] a)
{
arr = a;
}
public IEnumerator GetEnumerator()
{
foreach (var el in arr)
yield return el;
}
}
static void Main()
{
var data = new MyClass(new int[] { 1, 2, 3 });
var list = new List<int>();
foreach (var x in data)
{
list.Add(x);
}
}list.Add(x); :
ошибка CS1502: Наиболее подходящий перегруженный метод для "System.Collections.Generic.List<int>.Add(int)" имеет несколько недопустимых аргументов
ошибка CS1503: Аргумент "1": преобразование типа из "object" в "int" невозможно
Понятно, что нужен тип int, а не object для добавления в list.
И если сделать так: foreach (int x in data) то будет работать.
Но мне нужно не менять этот вызывающий код, а изменить как-то метод GetEnumerator().
Подскажите: как это можно сделать? Решение задачи: «Реализация GetEnumerator()»
textual
Листинг программы
public IEnumerator<int> GetEnumerator()
{
//...
}