for循环中的执行时间非常慢

时间:2018-01-19 11:58:00

标签: c# performance elapsedtime

我有这样的代码:

string str = "";
for(int i=0; i<100000; i++){
    ...........
    str += ...;
}
return str;

但是,这段代码非常慢,执行时需要7分钟。

你认为解决方案会是什么?

1 个答案:

答案 0 :(得分:3)

StringBuilder 的好处对于庞大的字符串应该非常有用。

在您的示例中,每次连接字符串(str += ....)时都会创建 new 字符串对象,并且它变得越长,从< strong>旧字符串为字符串。

以下是memory级别的工作原理。

enter image description here

StringBuilder行动不同。它完全包含在这类问题中。因此,.NET Framework包含针对字符串 StringBuilder优化的concatenation类。

所以StringBuilder应该在你的情况下表现得更好。