Если у вас уже есть IEnumerable
для цикла, а тип возвращаемого значения - IEnumerable
(как в случае с функциями, которые могут использовать yield return
), вы можете просто вернуть это перечисление.
Если у вас есть случаи, когда вам нужно объединить результаты из нескольких IEnumerable
с, вы можете использовать метод расширения IEnumerable<T>.Concat
.
Однако в вашем рекурсивном примере вам нужно прекратить перечисление / конкатенацию, основываясь на содержимом перечисления. Я не думаю, что мой метод это поддержит.