c#字符串连接使⽤“+”和string.format格式化两种⽅式
字符串之间的连接常⽤的两种是:“+”连接、string.format格式化连接、StringBuilder 连接
  1.什么时候使⽤“+”连接呢?
  待连接的字符串在6个以下,可以使⽤ + 连接
  使⽤ + 连接最终会调⽤ String.Concat ⽅法,当同时连接⼏个字符串时,并不是每连接⼀个都分配⼀次内存,⽽是把⼏个字符都作为 String.Concat ⽅法的参数,只分配⼀次内存,如:
  string s = s1 + s2 + s3 + s4 + s5;
  最终会被编译为:string.Concat(s1, s2, s3, s4, s5);
  经测试,当待连接的字符串在6个以下时,使⽤ + 连接,效率略⾼于 StringBuilder
  2、何时使⽤ StringBuilder 
  如果待连接字符串在6个以上,使⽤ StringBuilder ⽐较合适。
  StringBuilder 只分配⼀次内存,如果第⼆次连接内存不⾜,则修改内存⼤⼩;它每次默认分配16字节,如果内存不⾜,则扩展到32字节,如果仍然不⾜,继续成倍扩展。
  使⽤ StringBuilder 的关键是分配好内存,如果频繁的扩展内存,效率⼤打折扣,因为分配内存,时间开销相对⽐较⼤。
  如果事先能准确估计程序执⾏过程中所需要的内存,从⽽⼀次分配⾜内存,效率⼤⼤提⾼。如果不能准确估计,也要尽量减少内存的分配次数。
  3、字符格式(string.format)
  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 builder = new StringBuilder(format.Length + (args.Length * 8));
默认字符串是什么
    builder.AppendFormat(provider, format, args);
    return builder.ToString();
  }
  如果在待连接字符串⽐较少的情况下,并没有什么效率上的差别,在 StringBuilder 和 string.format 之间可以根据⽅便性或习惯⾃由选择。如果连接的字符串很多, StringBuilder 的效率⾃然要⾼,并且使⽤ string.format 也不太⽅便。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。