C#代码优化—字符串拼接效率比较

字符串拼接主要有以下几种方法:

  1. + : 加号
  2. String.Format() : 字符串格式化
  3. StringBuilder.Append()

说明

  1. 对于少量固定的字符串拼接,如string str = "a" + "b" + "c",则csc编译器会优化成 str = String.Concat("a", "b", "c"); 不会创建多个字符串。
    如果写成 string str = "a"; s += "b"; s += "c"; 则会多创建3个新字符串。
  2. String.Format()
    用Reflector查看String.Format源码,内部调用的是StringBuilder.
    public static String Format( 
        IFormatProvider provider, String format, params Object[] args) {
        if (format == null || args == null)
           throw new ArgumentNullException((format==null)?"format":"args");
        StringBuilder sb = new StringBuilder(format.Length + args.Length * 8);
        sb.AppendFormat(provider,format,args);
        return sb.ToString();
    }

  3. StringBuider类可以指定内存空间的大小,字符串较少时,可以使用Stirng.Format()代替;

对于少量的字符串操作时可以使用"+"或者String.Format(); 当操作大量字符串时,比如在循环体内,最好使用StringBuider.

posted on 2013-09-29 23:10  Frank.Fan  阅读(1145)  评论(0编辑  收藏  举报