【发布时间】:2014-08-28 14:58:44
【问题描述】:
我见过以这两种方式使用 For 循环。使用 ! 而不是使用 < 有什么积极的方面吗?哪个更快?
for (i = 0; i != imax; ++i)
{
}
或
for (i = 0; i < imax; ++i)
{
}
【问题讨论】:
-
它们意味着两个不同的东西
-
这不是让你的循环更快的方法。里面的代码比检查整数相等的方法慢很多。
-
选择其中一个的原因是出于意图,因此,它增加了可读性。看到这个链接programmers.stackexchange.com/questions/70996/…
-
"full of for loops" 可能是代码异味... linq 能以任何方式使您受益吗?如果您在“for”中的“for”中有“for”,那么最好重构并尝试 linq 而不是 for。你的 for 循环在做计算吗?设置数据?获取数据?填充列表?就像 Prix 说的,如果我们不知道你想完成什么,很难猜出什么是慢的......
-
@Mehdi 是的,linq 可能会引入一些开销......但这也取决于您的代码中发生了什么。 linq 引入了“延迟执行”,它允许您启动一些 where 子句并搜索数据子集。它不会执行您的查询或操作,直到结束。它还允许您通过 Union 子句加入两组集合并进行搜索。我肯定需要对您进行一些基准测试,看看您的 for 循环是否会优于 linq。