这在条件循环中更有效

本文关键字:有效 循环 条件 | 更新日期: 2023-09-27 18:31:55

假设我有以下集合

IEnumerable<car> cars = new IEnumerable<car>();

现在我需要循环这个集合。

我需要根据汽车类型做一些功能;所以我可以做以下方法之一:
方法一:

       foreach( var item in cars){
           if(item.color == white){
              doSomething();
           }
           else{
              doSomeOtherThing();
           }
       }

或者另一种方式:
方法B:

foreach( var item in cars.where(c=>c.color==white)){
   doSomething();
}
foreach( var item in cars.where(c=>c.color!=white)){
  doSomeOtherthing();
}

对我来说,我认为方法A更好。 我只在集合上循环一次而方法B似乎很诱人。框架将为您循环和筛选集合。

那么哪种方法更好更快呢?

这在条件循环中更有效

嗯,这取决于过滤过程的复杂程度它可能非常高效,以至于无关紧要,特别是考虑到您不再需要使用 if 语句进行自己的过滤。

我要说一件事:除非你的收藏量很大,否则它可能不会产生足够的影响。而且,有时,最好优化可读性而不是速度:-)

但是,如果你真的想知道,你测量!使用合适的类似生产的测试数据对环境中的操作进行计时。这是确定的唯一方法。

方法

A 比方法 B 更具可读性。只有一个问题,是car.color还是item.color?