【发布时间】:2014-06-15 14:55:30
【问题描述】:
这是一个非常挑剔的问题,但好奇心战胜了我。
每次执行循环时,for 循环是否都会重新评估 RHS 条件?见下文。
for(int i = 0; i < collection.Count; i++)
{
}
在整个代码库中执行以下操作是否是一种好习惯?
for(int i = 0, n = collections.Count; i < n; i++)
{
}
或者编译器是否进行了这些优化/它们可以忽略不计(即使代码库很大)?
【问题讨论】:
-
第二个循环无法编译。你错过了
; i < n;吗? -
为什么不改用
foreach?这样优化就不用担心了。 -
@FrédéricHamidi 因为你可能不想为每个元素做点什么?
-
@FrédéricHamidi 因为也许你想对索引做点什么
-
@MarcinJuraszek 感谢您发现 :)
标签: c# loops for-loop conditional-statements evaluation