27 9月 2011

[C#] 用 StringBuilder 取代 string 的字串連接

C#中使用 string 不可改變的,即不能更改
當你改變一個字符串,你實際上是在創建一個新的字符串導致

  • 程式碼將會使用更多而不必要的記憶體
  • 將會有更多的垃圾需要回收(GC)
  • 執行速度將會變慢
請用 StringBuilder 取代 string 的字串連接



// Bad 
String strConcat;
ArrayList arrayOfStrings = new ArrayList();
arrayOfStrings.Add("a");
arrayOfStrings.Add("b");foreach (string s in stringContainer)
{
strConcat += s;
}

// Good
StringBuilder sbConcat = new StringBuilder ();
foreach (string s in arrayOfStrings )
{
sbConcat.append(s);
}

沒有留言:

張貼留言