C#连接更快

4 c# string performance concatenation

我对我的代码运行了visual studio分析,我发现花了很多时间来连接字符串.是否有更快的连接方式?

    string[] infoseperated = info.Split(' ');   
    for (int iii = totalremove; iii < infoseperated.Length; iii++)
    {
    newinfo += infoseperated[iii] + " ";
    }
Run Code Online (Sandbox Code Playgroud)

Bro*_*ass 12

string.Join改为使用:

newinfo = string.Join(" ", infoseperated.Skip(totalremove));
Run Code Online (Sandbox Code Playgroud)

您当前的方法为每个连接生成一个字符串(因为字符串是不可变的,您必须重新分配一个新的字符串),这是非常昂贵的.

对于每个连接,现有字符串的所有字符都必须复制到新字符串中,因此此操作的成本随着字符串中字符数的增加而增长 - 这是Schlemiel the Painter的算法

string.Join使用StringBuilder内部避免这种情况.