Mag*_*use 0 c# optimization foreach if-statement
在使用foreach枚举内容之前添加对集合计数的检查是否会有任何性能改进?
if (users.Count != 0) {
foreach (var user in users) {
// do what snowmen do in summer
}
}
Run Code Online (Sandbox Code Playgroud)
与
foreach (var user in users) {
// do what snowmen do in summer
}
Run Code Online (Sandbox Code Playgroud)
我的功能花了太长时间,所以我想知道这是否会提高性能甚至一点点,以使我的功能执行时间降到我需要的地方.
编辑(此循环执行的上下文):
for (DateTime day = dayStart; day < dayEnd; day = day.addMinutes(30)) {
// Other actions
if (users.Count != 0) {
foreach (var user in users) {
// do what snowmen do in summer
}
}
}
Run Code Online (Sandbox Code Playgroud)
这两个脚本具有相同的结果.
如果计数为零,Foreach将不会执行任何操作,因此不需要if语句.
在纳秒和更大的时间内执行的差异并不快,如果列表有项目,它会更慢,但在这两种情况下你不会注意到任何事情.