返回首页
当前位置: 主页 > 编程语言 > C#教程 >

C#提高循环效率要注意的4个问题

时间:2017-03-06 12:18来源:电脑教程学习网 www.etwiki.cn 编辑:admin

在编程过程中,使用循环是经常的事;如果循环次数少,性能的差别表现不明显;反之,如果循环100万次、1000万次、甚至更多,性能的差别在时间就会表现得很明显,本来用几十毫秒就可以执行完,结果用了几百毫秒,甚至更多。所以,平常写程序多注意积累性能效率方面的知识,在关键时刻的优势就体现出来了。那么循环中提高效率要注意哪些问题呢?

  举例要用到的类如下:

  //用户类
  public class UserInfo
  {
    string userName;
    string address;
    int age;
  }


  1、避免在循环中声明变量,尤其是声明对象

  低效:

  for (int i = 0; i < 100000; i++)
  {
    UserInfo uObj = new UserInfo();
    if(uObj.userName == "李静海")
    {
      
    }
  }


  高效:

  UserInfo uObj = new UserInfo();
  for (int i = 0; i < 100000; i++)
  {
    if(uObj.userName == "李静海")
    {
      
    }
  }

  提示:创建对象要消耗大量的系统资源,如果在循环中不断重复创建对然,将会使系统性能大幅下降,所以要尽量避免创建对象。

 

  2、避免重复计算集合中的元素总数

  IList lst = new List();

  低效:

  for (int i = 0; i < list.count; i++)
  {
    if(lst[i].userName == "李静海")
    {
      
    }
  }


  高效:

  int lth = list.count;
  for (int i = 0; i < lth; i++)
  {
    if(uObj.userName == "李静海")
    {
      
    }
  }


  3、foreach 比 for 效率高一点,能用 foreach 的就不要用 for,在下一篇文章中将用实例具体比较它们的效率差别。

  4、能用循环代替递归调用的,就不要用递归调用,递归效率低一点;此外,尽量减少循环嵌套,循环嵌套会严重降低效率。

------分隔线----------------------------
标签(Tag):c#
------分隔线----------------------------
推荐内容
猜你感兴趣