Использование 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; } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д