Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/274.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# StringBuilder与串联的性能比较_C#_Asp.net_Performance_Concatenation_Stringbuilder - Fatal编程技术网

C# StringBuilder与串联的性能比较

C# StringBuilder与串联的性能比较,c#,asp.net,performance,concatenation,stringbuilder,C#,Asp.net,Performance,Concatenation,Stringbuilder,我测试了一个简单的连接: string res = ""; for (var i = 0; i < 1000; i++) { res += mystring; } return res; 周期越大,使用StringBuilder的性能越好 我想知道这个结果的真正原因,我的意思是,创建、实现一个对象、调用方法比简单的string1+string2要快 字符串是不可变的,因此每个+=mystring都会创建一个新对象。如果您在一个实例上操作,则会产生性能差异。通

我测试了一个简单的连接:

 string res = "";
 for (var i = 0; i < 1000; i++)
 {
     res += mystring;     
 }
 return res;
周期越大,使用
StringBuilder
的性能越好


我想知道这个结果的真正原因,我的意思是,创建、实现一个对象、调用方法比简单的
string1+string2
要快

字符串是不可变的,因此每个
+=mystring
都会创建一个新对象。如果您在一个实例上操作,则会产生性能差异。通过配置
容量
属性,可以进一步提高性能。您可以在中找到有关此问题的更多信息。

阅读Jon Skeet的文章
 StringBuilder builder = new StringBuilder();
 for (var i = 0; i < 1000; i++)
 {
     builder.Append(mystring);           
 }
 return builder.ToString();