У меня есть следующая функция, которую я хотел бы изменить, чтобы возвращать перечислимое с помощью оператора yield. Я никогда раньше не использовал этот оператор и немного недоумеваю, почему я не могу заставить его работать. = состояния [я]; и я не могу понять почему.
public static IEnumerable<int[]> printPermutations2(int[] n, int[] states, int idx)
{
if (idx == n.Length)
{
yield return n;
}
for (int i = 0; i < states.Length; i++)
{
n[idx] = states[i];
var perms = printPermutations2(n, states, idx + 1);
foreach(var p in perms)
yield return p;
}
}