我读过很多次 foreach 在数组上的执行效率比 for 低一些(因为它需要构造函数/使用迭代器)并且人们提倡使用 for 循环。
我对编译器没有优化它感到有点惊讶(又名:将它转换为简单的 for 循环 IL 代码)。 visual studio 2015 编译器为我们做了这么多(C# 6 语言特性)为什么不修复 foreach 的这种“不太为人所知”的错误用法?
最佳答案
foreach
在数组上的性能比 for
差的说法是不正确的。 Jon Skeet 对两者进行了性能比较:
并得出结论,对于数组“编译器发出大致相同的代码”,并且对于他的基准测试,“结果基本相同。”
关于c# - C# 编译器不会优化 foreach 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35476668/