Реализация GetEnumerator() - C#

Узнай цену своей работы

Формулировка задачи:

Здравствуйте, помогите пожалуйста с решением задачи. Имеется такой код:
Листинг программы
  1. class MyClass
  2. {
  3. int[] arr;
  4. public MyClass(int[] a)
  5. {
  6. arr = a;
  7. }
  8. public IEnumerator GetEnumerator()
  9. {
  10. foreach (var el in arr)
  11. yield return el;
  12. }
  13. }
  14. static void Main()
  15. {
  16. var data = new MyClass(new int[] { 1, 2, 3 });
  17. var list = new List<int>();
  18. foreach (var x in data)
  19. {
  20. list.Add(x);
  21. }
  22. }
Получаю ошибку на строке 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
Листинг программы
  1. public IEnumerator<int> GetEnumerator()
  2. {
  3.     //...
  4. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.667 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы