首先看测试代码:
public class StringSpeedTest { private readonly static string _testStr = "0123456789"; public string StringAdd(int count) { string str = string.Empty; for (int i = 0; i < count; i++) { str += _testStr; } return str; } public string UseStringBuilder(int count) { StringBuilder sb = new StringBuilder(); for (int i = 0; i < count; i++) { sb.Append(_testStr); } return sb.ToString(); } public string UseStringBuilderWithCapacity(int count) { StringBuilder sb = new StringBuilder(count * _testStr.Length); for (int i = 0; i < count; i++) { sb.Append(_testStr); } return sb.ToString(); } public string UseStringConcat(int count) { string[] list = new string[count]; for (int i = 0; i < count; i++) { list[i] = _testStr; } return string.Concat(list); } public string UseStringConcatWithList(int count) { List<string> list = new List<string>(count); for (int i = 0; i < count; i++) { list.Add(_testStr); } return string.Concat(list); } public string UseStringConcatWithListToArray(int count) { List<string> list = new List<string>(count); for (int i = 0; i < count; i++) { list.Add(_testStr); } return string.Concat(list.ToArray()); } }