先来看字符串串联。
string firstString = "Hello"; firstString += "World"; Console.WriteLine(firstString);
看起来好象是把第二个字符串连接到了第一个字符串上。而实际情形是,第二个字符串被分配,并赋值给字符串引用,第一个字符串被销毁。
如果写了大量这样的代码(例如在一个循环中),那么他们的效率会非常低,因为创建和销毁字符串对象是一项非常费时的操作。
再来看StringBuilder。
StringBuilder类提供了更为高效的构建字符串的方法,因为它无须每次修改时创建新的字符串。
StringBuilder sb = new StringBuilder(); sb.Append("Hello"); sb.Append("World"); Console.WriteLine(sb.ToString());