可能重複:
When to use StringBuilder?
string is immutable and stringbuilder is mutable字符串生成器VS串
什麼不同勢字符串,字符串生成的? 我們在哪裏使用字符串生成器?
可能重複:
When to use StringBuilder?
string is immutable and stringbuilder is mutable字符串生成器VS串
什麼不同勢字符串,字符串生成的? 我們在哪裏使用字符串生成器?
主要區別在於一個StringBuilder是可變的(意味着它可以被修改),而一個字符串是不可變的(意味着一旦它被構造就不能被修改)。
如果您嘗試從大量較小的字符串創建大字符串,則此差異非常重要。如果使用StringBuilder,則可以在不創建新對象的情況下附加字符串,從而實現O(n)性能。如果使用字符串,則會創建大量立即丟棄的中間字符串,但所有額外的複製都意味着它會變爲O(操作)。
示例代碼示出了用於contructing從許多較小的字符串大串中的每個的用法:
字符串
string s = "";
for (int i = 0; i < 10000; ++i)
{
s += "foo";
}
的StringBuilder
StringBuilder sb = new StringBuilder();
for (int i = 0; i < 10000; ++i)
{
sb.Append("foo");
}
string s = sb.ToString();
除了字符爲不可變的和stringbuilder是可變的,你應該使用字符串buil因爲這是一個非常昂貴的操作,特別是當包含在循環中時。