标签: c# performance elapsedtime
我有这样的代码:
string str = ""; for(int i=0; i<100000; i++){ ........... str += ...; } return str;
但是,这段代码非常慢,执行时需要7分钟。
你认为解决方案会是什么?
答案 0 :(得分:3)
StringBuilder 的好处对于庞大的字符串应该非常有用。
在您的示例中,每次连接字符串(str += ....)时都会创建 new 字符串对象,并且它变得越长,从< strong>旧字符串为新字符串。
str += ....
以下是memory级别的工作原理。
memory
StringBuilder行动不同。它完全包含在这类问题中。因此,.NET Framework包含针对字符串 StringBuilder优化的concatenation类。
StringBuilder
.NET Framework
concatenation
所以StringBuilder应该在你的情况下表现得更好。