参考了前辈COCO56(徐可可)的文章C# 字符串的三种拼接方法性能比较_c# string.concat和+的性能-CSDN博客
先说结论:StringBuilder.Append() >> String.Concat() > string的"+"
public class Test
{
static void Main(string[] args) {
//当数据量为100000时,进行效率对比
testAdd(0, 100000);
testAppend(0, 100000);
testConcat(0, 100000);
}
/// <summary>
/// 测试 string 的 + 拼接
/// </summary>
public static void testAdd(int startNum, int endNum) {
string s = "";
Stopwatch stopwatch = new Stopwatch();
stopwatch.Start();
for (int i = startNum; i <= endNum; i++) {
s += i;
}
stopwatch.Stop();
Console.WriteLine("string的 + 连接耗时为:");
Console.WriteLine(stopwatch.Elapsed);
}
/// <summary>
/// 测试 StringBuilder 的 Append()
/// </summary>
public static void testAppend(int startNum, int endNum) {
StringBuilder stringBuilder = new StringBuilder();
Stopwatch stopwatch = new Stopwatch();
stopwatch.Restart();
for (int i = startNum; i <= endNum; i++) {
stringBuilder.Append(i);
}
stopwatch.Stop();
Console.WriteLine("StringBuilder的Append()耗时为:");
Console.WriteLine(stopwatch.Elapsed);
}
/// <summary>
/// 测试 String 的 Concat()
/// </summary>
public static void testConcat(int startNum, int endNum) {
string s = "";
Stopwatch stopwatch = new Stopwatch();
stopwatch.Restart();
for (int i = startNum; i<=endNum; i++) {
s = String.Concat(s, i);
}
stopwatch.Stop();
Console.WriteLine("String的Concat()耗时为:");
Console.WriteLine(stopwatch.Elapsed);
}
}