如果我的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/