string是一个不变类,创建了以后就不会改变了,如果你每次对这个string对象进行修改的话,都会创建一个新的string类。在我们的程序里经常要对string进行拼接的,如果量很大的话就会在内存里创建很多的string的对象,这样对内存就是比较大的浪费,就会引起性能问题。
static void Main(string[] args)
{
string aa = "a";
int b=1;
//这就是修改
aa = "a" + "c";
}
修改后就变成了 2#就表示已经不是同一个东西了,string每次改变都会产生一个新的对象,原先的那个string已经在内存里,但没有用了,这样就相当于在内存中产生了一个垃圾,这样的话就是浪费。所以如果你经常要把一个字符串后面加点什么东西的这样的操作的话,就不要在string后面直接加,为了避免这样的浪费,就需要一个新的类stringbuilder。
使用 append方法来添加字符串,最后使用tostring方法来返回拼接好的值,也支持这样格式化字符串appendformat
private static void TestStringBuilder()
{
//先创建这个对象
StringBuilder sb = new StringBuilder();
for (int i = 0; i < 100; i++)
{
//append就是附加的意思,就是把字符串加到现有值的后面
sb.Append(i.ToString());
if (i == 50)
{
sb.AppendFormat("这是第{0}个字符串\n", i);
}
}
string result = sb.ToString();
}