Ale*_*lex 17 c# optimization for-loop
我是否必须像下面那样优化我的FOR循环,否则编译器会为我做这个?
//this is slow, right?
for (int i = 0; i < menuItem.DropDownItems.Count; i++)
{
...
}
//this should be much faster right?
for (int i = 0, count = menuItem.DropDownItems.Count; i < count; i++)
{
...
}
Run Code Online (Sandbox Code Playgroud)
PS.我打赌这已经发布但我没有找到任何东西,抱歉可能有重复.
PPS.对不起,我编写了很多JavaScript代码 - 我们必须考虑这些优化......在.net-world中可能看起来很荒谬.
Jon*_*eet 20
嗯,这取决于如何DropDownItems.Count实现-但坦率地说这是可能是一个简单的现场支持的财产......这将使第一个代码一样快,第二,但很多更具可读性.
首先是可读性 - 然后仅在必要时测量性能和微观优化.
在可能性的基础上,尽可能选择foreach循环开始......
即使你确实想要使用临时变量,我也会保持for循环本身的简单,将计数提升到单独的变量.不可否认,这意味着范围更广,但更简单:
int count = menuItem.DropDownItems.Count;
for (int i = 0; i < count; i++)
{
...
}
Run Code Online (Sandbox Code Playgroud)
尽管如此,这只是个人偏好.
| 归档时间: |
|
| 查看次数: |
2051 次 |
| 最近记录: |