Причина объявления локальной функции сначала не очевидна. Если посмотреть дальше, охватывающий метод возвращает IEnumerable<TResult>
. Есть два способа вернуть IEnumerable
из метода.
- Использование оператора
yield return
с объектами типа TResult
- Использование оператора
return
с объектом типа IEnumerable<TResult>
Но эти два оператора не могут быть смешаны в одном методе, вам всегда придется использовать один или другой на всех путях выполнения метода.
Используя оператор return
ранее в методе, одно и то же утверждение нужно было использовать во всем методе.