close

StringBuilder是一個能大幅降低動態字串的工具

他不像string一樣,宣告完就是固定的

如果只使用string + string 會對效能造成很大的浪費

簡單來說就是程式會變很慢

我們直接來測試吧

利用上次的Stopwatch專案繼續作下去

1.多拉2個button作為測試鈕

4.png

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";

5.png

3.執行結果

6.png

很明顯可以看到 stringbuilder執行速度快非常非常之多

很適合作在迴圈中字串一直大量的組合的地方

arrow
arrow
    創作者介紹
    創作者 阿寶子 的頭像
    阿寶子

    被程式耽誤的遊戲師

    阿寶子 發表在 痞客邦 留言(0) 人氣()