简单地说 :
StringBuilder 是生产 String 的。
String类中 Insert() 、Remove()等方法 操作的结果都是产生一个新的字符串。原来的字符串不发生变化。
StringBuilder 内部维护一个char 数组,StringBuilder类都是在 数组上面进行操作。不会生成多个String ,StringBuilder 类型 通过 .ToString() 来“生成”字符串(实际上是返回数组的地址)。
参考:http://www.cnblogs.com/ljhong/archive/2008/09/25/1298779.html
不可变的是在内存中又创建了一个你拼接的字符串。对于拼接次数很多的操作,性能上string是不能和stringbuilder比的。