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