StringBuilder是一個能大幅降低動態字串的工具
他不像string一樣,宣告完就是固定的
如果只使用string + string 會對效能造成很大的浪費
簡單來說就是程式會變很慢
我們直接來測試吧
利用上次的Stopwatch專案繼續作下去
1.多拉2個button作為測試鈕
2.進入程式碼頁面
比較二個loop,字申從0加到50000,因為字串很長,所以就不show在textbox裡了
a.LoopA [傳統string+string]
Stopwatch stopwatch = new Stopwatch();
stopwatch.Start();//開始計時
string LoopA = "";
for (int i = 1; i <= 50000; i++)
{
LoopA = LoopA + i.ToString();
}
stopwatch.Stop();//停止計時
textBox1.Text = textBox1.Text + "LoopA\n RunTime = " + (stopwatch.ElapsedMilliseconds).ToString() + " ms \r\n";
b.LoopB [stringbuilder]
System.Text.StringBuilder stringbulder = new StringBuilder();
Stopwatch stopwatch = new Stopwatch();
stopwatch.Start();//開始計時
string LoopA = "";
for (int i = 1; i <= 50000; i++)
{
stringbulder.Append(i.ToString());
}
LoopA = stringbulder.ToString();
stopwatch.Stop();//停止計時
textBox1.Text = textBox1.Text + "LoopB\n RunTime = " + (stopwatch.ElapsedMilliseconds).ToString() + " ms \r\n";
3.執行結果
很明顯可以看到 stringbuilder執行速度快非常非常之多
很適合作在迴圈中字串一直大量的組合的地方