Использование yield return - C#

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

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

Здравствуйте, нужна ваша помощь. Задание: Необходимо реализовать функцию ZipSum с использованием yield return, которая принимает на вход две последовательности целых чисел и возвращает последовательность, состоящую из попарных сумм их элементов. Можно считать, что входные последовательности одинаковой длины. Дан такой код:
Листинг программы
  1. public static void Main()
  2. {
  3. Console.WriteLine(string.Join(" ", ZipSum(new[] { 1 }, new[] { 0 })));
  4. Console.WriteLine(string.Join(" ", ZipSum(new[] { 1, 2 }, new[] { 1, 2 })));
  5. Console.WriteLine(string.Join(" ", ZipSum(new int[0], new int[0])));
  6. Console.WriteLine(string.Join(" ", ZipSum(new[] { 1, 3, 5 }, new[] { 5, 3, -1 })));
  7. }
И дана заготовка функции, которую необходимо дописать:
Листинг программы
  1. private static IEnumerable<int> ZipSum(IEnumerable<int> first, IEnumerable<int> second)
  2. {
  3. var e1 = first.GetEnumerator();
  4. var e2 = second.GetEnumerator();
  5. while(...)
  6. ...
  7. }
Ожидаемый вывод: 1 2 4 6 6 4

Решение задачи: «Использование yield return»

textual
Листинг программы
  1. private static IEnumerable<int> ZipSum(IEnumerable<int> first, IEnumerable<int> second)
  2. {
  3.     var e1 = first.GetEnumerator();
  4.     var e2 = second.GetEnumerator();
  5.     while (e1.MoveNext())
  6.     {
  7.         e2.MoveNext();
  8.         yield return e1.Current + e2.Current;
  9.     }
  10. }

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


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

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

13   голосов , оценка 3.846 из 5

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

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

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