▪️.Net - String VS StringBuilder
2025-4-29
| 2025-4-29
字數 388閱讀時間 1 分鐘

stringStringBuilder 差異與運作原理

一、基本差異

特性
string
StringBuilder
是否可變
不可變(Immutable)
可變(Mutable)
記憶體分配
每次修改都會建立 新實體
在原本記憶體區塊上直接操作
效能(多次修改)
效能差,因為會產生多個字串物件
效能佳,適合大量字串拼接
使用場景
小量操作、格式化、固定內容
迴圈中拼接字串、大量變動字串時

二、運作原理

string 的原理

  • 屬於 不可變類型 (Immutable)
  • 當你修改字串(例如透過 +Replace)時,實際上是 建立了一個新的字串實體,而不是在原字串上做修改。
  • 例如:

StringBuilder 的原理

  • 屬於 可變類型 (Mutable)
  • 內部使用 字元陣列 (char[]) 做為儲存區。
  • 當你使用 .Append().Insert() 時,是直接操作內部陣列,不會產生新物件。
  • 如果超出容量,會自動擴充陣列。

三、效能比較

  • 當你需要 頻繁修改或拼接字串(如在迴圈中),使用 StringBuilder 會更有效率。
  • string 適合用在 少量拼接、簡潔語法 的情境,例如插入變數、格式化字串等。
🔍 範例比較(10,000 次拼接):

四、建議使用時機

使用情境
建議類型
少量拼接、模板字串
string
字串格式化(string.Format
string
多次拼接、處理大量資料
StringBuilder
  • Dotnet
  • 資安 - FIDO2Prometheus - PromQL
    Loading...