gpt4 book ai didi

c# - C# 中 IEnumerable 类的 foreach 和 for 循环之间的区别

转载 作者:可可西里 更新时间:2023-11-01 08:03:23 26 4
gpt4 key购买 nike

有人告诉我以下代码块之间存在性能差异。

foreach (Entity e in entityList)
{
....
}

for (int i=0; i<entityList.Count; i++)
{
Entity e = (Entity)entityList[i];
...
}

在哪里

List<Entity> entityList;

我对 CLR 没有期望,但据我所知,它们应该归结为基本相同的代码。有没有人有具体的(哎呀,我会采取堆积的泥土)证据?

最佳答案

foreach 创建一个枚举器实例(从 GetEnumerator 返回),并且该枚举器还在 foreach 循环的整个过程中保持状态。然后,它会重复调用枚举器上的 Next() 对象,并针对它返回的每个对象运行您的代码。

它们不会以任何方式归结为相同的代码,真的,如果您编写自己的枚举器,您会看到这一点。

关于c# - C# 中 IEnumerable 类的 foreach 和 for 循环之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44220/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com