在使用foreach之前,我应该检查集合的计数吗?

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)

ous*_*dou 9

这两个脚本具有相同的结果.

如果计数为零,Foreach将不会执行任何操作,因此不需要if语句.

在纳秒和更大的时间内执行的差异并不快,如果列表有项目,它会更慢,但在这两种情况下你不会注意到任何事情.