?????? 关于stringBuilder有个不懂的地方
static void Main(string[] args)
{
//
// TODO: アプリケーションを開始するコードをここに追加してください。
//
string startString = "begin";
string s = "";
int count = 10000;
StringBuilder sb = new StringBuilder(startString);
DateTime startTime1 = DateTime.Now;
for(int i = 0;i<= count;i++)
{
sb.Append(s);
}
DateTime endTime1 = DateTime.Now;
//TimeSpan elapsedTime1 = endTime1-startTime1;
Console.WriteLine((endTime1-startTime1).ToString());
DateTime startTime2 = DateTime.Now;
for(int i = 0;i<=count;i++)
{
startString += s;
}
DateTime endTime2 = DateTime.Now;
//TimeSpan elapsedTime2 = endTime2 - startTime2;
Console.WriteLine((endTime2-startTime2).ToString());
Console.ReadLine();
}
正常情况下,stringBuilder的处理字符串的速度应该比较快,当要追加的字符串 s 非空时,是正常的,处理的时间比较短,可是当 s 为空字符串时,结果恰好就反过来了,不明白为什么,难道和内存的分配有关系吗?