现在的位置: 首页 > 综合 > 正文

for vs foreach

2013年08月01日 ⁄ 综合 ⁄ 共 805字 ⁄ 字号 评论关闭

到底for效率高还是foreach的效率高?我们应该用哪个循环

误区1:不能单纯的强调for和foreach谁的效率高。

              因为两者的出现的背景不同,出现的目的不同,两者是完全不同的两个语句,所以没有标准、公平的可比性。只有根据当前代码的适宜性来使用。

误区2:不能认为for与foreach可以互相替换。

              for语句是早期高级编程语言就有的,而foreach是从C#开始出现的(Java早期版本也无foreach),foreach的作用是为了提高代码的优雅性、简洁性和某些情况下的效率。               可以不成熟的说foreach循环是for循环的精简版。for可以替代foreach,但反之不成。

对比:for是古老的循环语句,功能强大,代码繁琐;foreach是新兴的循环语句,代码简洁。

           for是透明的循环,每一步都可以看清楚,即使执行的顺序都可以看到和操作;foreach是个黑匣子,被循环对象是封装好的;

           for就是个循环,从头到尾的循环,可以修改被循环对象,但需谨慎;foreach是只读循环,不可对被循环对象进行增删改操作;

           for循环可以操作被循环对象的任意数据;foreach循环只能读取当前行数据;

           for的循环可以按照需求跳跃循环;foreach只能逐句循环;

           for循环需控制好起始点,否则循环结果有误;foreach在某些情况下去对被循环对象进行验证,以保证循环可以进行,如foreach (long _cell in filterInfo.Cells),需判断filterInfo.Cells不为null

小结:在简单单纯的循环中,foreach循环不仅代码简洁、效率高、易操作;

            在复杂的循环中,如果需要对被循环对象进行操作,需要获取非当前循环行的数据,需要跳跃式循环时等复杂的情况下,for循环可提现优势。

抱歉!评论已关闭.