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