【发布时间】:2009-07-20 07:41:41
【问题描述】:
假设我们要遍历下拉列表中的所有项目,并且在循环时没有添加或删除任何项目。它的代码如下:
for (int i = 0; i < ddl.Items.Count; i++)
{
if (ddl.Items[i].Text == text)
{
found = true;
break;
}
}
如果改成这样:
for (int i = 0, c = ddl.Items.Count; i < c; i++)
{
if (ddl.Items[i].Text == text)
{
found = true;
break;
}
}
有任何性能提升吗?编译器是否做了一些聪明的操作而不是每次迭代都读取Count 属性?
【问题讨论】:
-
第 1 步是比较生成的 IL。
标签: c# performance loops