字符串合并是信息处理和输出时,常常遇到的事情,本人对比了普通的“+”合并和Concat()方法,发现效率差别惊人,下面就是测试程序和结果:
private void button1_Click(object sender, EventArgs e)
{
int size = 20000;
string stringResult1 = "";
string stringResult2 = "";
List<string> stringArray = new List<string>();
for(int i = 0; i < size; i++)
stringArray.Add(i.ToString());
DateTime t1 = DateTime.Now;
for (int i = 0; i < size; i++)
stringResult1 += stringArray[i];
//size=10000时,耗时30-50ms
//size=20000时,耗时300-500ms
DateTime t2 = DateTime.Now;
stringResult2 = string.Concat(stringArray.ToArray());
//size=10000时,耗时0ms
//size=20000时,耗时0ms
DateTime t3 = DateTime.Now;
Console.WriteLine("dt(ms)=" + (t2 - t1).TotalMilliseconds.ToString("F2"));
Console.WriteLine("dt2(ms)=" + (t3 - t2).TotalMilliseconds.ToString("F2"));
}
原理暂且不说,从以上例子可以看出,大家以后还是要尽量使用Concat()方法。