一个string对象由许多子串组成。那么初始化的时候第三种方法的效率会比前两种高吗?
第一种方法:
string str="aaa";
str += str1;
str += "bbb";
str += str2;
str += "ccc";
str += str3;第二种方法:
string str="aaa"+str1+"bbb"+str2+"ccc"+str3;第三种方法:
string str=string.Format("aaa{0}bbb{1}ccc{2}",str1,str2,str3);

解决方案 »

  1.   

    建议LZ去看一下关于string和stringbuilder的比较。这三种方法对string而言效率都很低,用stringbuilder的效率会高很多。
      

  2.   

    绝大部分情况下运行效率不是问题,是否容易阅读和理解更重要。对运行效率有特殊要求的情况下,我倾向于认为第3种方法最慢(没测试)。
    理由是第3种方法要对格式字符串进行搜索和分析,找出所有的占位符(那些{0} {1}...)。
    然后判断对应的对象是否支持IFormatter并进行相应的格式化,最后才是合并。而第1种和2种方法则比较简单,编译成string.Concat(string, string, string, string)等运行起来相对简洁和有效。
      

  3.   

    如果是字符串相加,推荐用StringBulid~
      

  4.   

    StringBulid 效率好些,看情况吧,如果不那么频繁,不那么长 用string就可以
      

  5.   

    三种方法都一样。效率不是最好的。如果子串的数据量多了,就不好了。最好是用StringBuilder对象的Appent方法来组装字符串。效率最高。
      

  6.   

    楼主可以自己去找下StringBuilder 和string的区别就知道StringBuilder的优点了。。
      

  7.   

    StringBuilder   连接字符串要比   string   +   string   这样的形式效率要高得多