Когда Repeat(item, nr))
добавляется к res
с res.Add(Repeat(item, nr))
, метод Repeat
не выполняется.
Почему? Я использовал отладчик, и он не выполняет его.
public class Program
{
public static IEnumerable<IEnumerable<T>> Echo<T>(IEnumerable<T> src, int nr)
{
List<IEnumerable<T>> res = new List<IEnumerable<T>>();
foreach (T item in src)
{
Console.Write(item);
res.Add(Repeat(item, nr));
}
return res;
}
static IEnumerable<T> Repeat<T>(T item, int nr)
{
for (int i = 0; i < nr; i++)
{
Console.Write(item);
yield return item;
}
}
public static void Main()
{
string[] src = { "a", "b", "c" };
Echo(src, 2);
}
}