寻找更快的方法来连接巨大的字符串

use*_*322 2 .net c# string-concatenation

我正在制作一个将图像转换为文本RRR GGG BBB 字符串数组的应用程序.

对于小图像,它的工作速度非常快,但是当输入图像的像素数非常高时,应用程序会逐渐减慢.

应用程序x,y循环遍历输入图像的所有像素,扫描每个像素并将其RGB格式的值添加到最终字符串,在扫描整个图像后将保存为文本.

在内置分析器的帮助下,我发现System.String.Concat(string,string)最终字符串越大,所需的时间就越多.

然后我尝试制作一个临时字符串,它将保存1行计算结果,然后在进入下一行之前,将其添加到最终字符串中.现在它的工作速度提高了十倍,但仍然接近最终,性能下降.

但最终我的所有测试图像都比实际图像要小.如何将连接速度提高到更大的图像?

aba*_*hev 8

使用System.Text.StringBuilder:

var sb = new StringBuilder();
sb.Append(r);
sb.Append(g);
sb.Append(b);

string result = sb.ToString();
Run Code Online (Sandbox Code Playgroud)

此类专为快速字符串连接而设计.我不知道更快(一般情况下)它.

  • 打开链接并向下滚动:) (4认同)