Вероятно, именно декомпилятор dnSpy делает дикие предположения о том, что я предполагаю, что это оптимизированный для выпуска код.
Другой декомпилятор дал следующее:
private static IEnumerable<TResult> CastIterator<TResult>(IEnumerable source)
{
foreach (TResult result in source)
yield return result;
}
Что выглядит более вменяемым представлением.
На ваш вопрос по yield break;
, как только он попадет в первый, итератор завершен.Большинство IDE могут пометить любой код, следующий за ним, как недоступный.