1、1)C#中的字符串有个特性,一旦初始化之后就不会再更改了。平时给string变量赋值一次后,再次使用代码可以直接修改,但是,本质上是重新创建了一个新的字符串。因此,修改多少次就会创建多少个字符串。2)StringBuilder则是直接在原字符串上修改值。3)创建一个控制台应用程序,在Program类的下方添加一个新的静态类StringHelper,并在顶部引入System.Text命名空间
2、在StringHelper类中添加一个静态方法UseString,接收两个参数,在方法内部使用字符串拼接,最终返回拼接的结果字符串
3、在StringHelper类中添加一个静态方法UseStringBuilder,接收两个参数,在方法内部使用StringBuilder拼接,最终返回拼接的结果字符串。注意:StringBuilder需要ToString之后转换为字符串
4、在Program.cs文件的顶部添加命名空间引用:using System.Diagnostics; 目的是使用Stopwatch,用于记录方法调用的耗时
5、在Main方法中,创建一个Stopwatch,并在调用UseString方法前开启,在调用完成后结束,最后输出这个方法的耗时,但是为毫秒。从结果可以看出,字符串拼接5万次,耗时8秒。注意:由于机器性能和当前繁忙状态不一样,执行结果的耗时可能有差异
6、在Main方法中调用UseStringBuilder方法,同样的方式记录这个方法调用的耗时。从结果可以看出,这个方式同样的拼接5万次字符串,耗时才7毫秒
7、使用Stopwatch记录两个方法的调用,并输出结果。可以看出,StringBuilder的耗时比string的耗时快上千倍。因此,平时如果拼接大量字符串,特别是循环次数很多的时候,使用StringBuilder可以提高性能。如果拼接的次数很少,两者的性能差距不明显