字符串的连接工作是损失性能的。

Posted on 2006-12-25 14:35  wemissworld  阅读(154)  评论(0)    收藏  举报
     在用C#写程序的过程中,向以下实例代码的使用已经成为了一种习惯:
    
        string s = "a";
        s += "b";

     由于在.net中,对于string的操作不会改变原来的串,而是创建一个新串进行字符串的操作,因此上面的代码和下面这段代码的作用是一样:
       string s = "a";
       string temp = new String( s + "b");
       string s = temp; //"a"就进入了垃圾回收器管理。
      
      可以看到,编译器做了很多多余的工作,如果程序中有大量的这种字符串操作,对于程序的性能损耗是很厉害的。

       我们可以使用StringBuilder解决这个问题。
          
            StringBuilder builder = new StringBuilder("a");
            builder.Append("b");
            string s = builder.ToString();
    

博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3