如果我的for-each循环正在通过方法参数,如果我以IEnumerable传递该参数,或者如果我以List传递该参数,那么有什么好处或不同?

最佳答案

不,没有。在这两种情况下,for-each都翻译成这样的东西

var enumerator = input.GetEnumerator();
while(enumerator.MoveNext())
{
    // loop body.
    // The current value is accessed through: enumerator.Current
}


另外,如果枚举器是一次性的,它将被放置在循环之后。

乔恩·斯基特(Jon Skeet)给出了详细的说明here

关于c# - IEnumerable与列表的FOR-EACH,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54656621/

10-09 03:08