string s = "value_test_this";
string m = s.Replace('e','E');
StringBuilder strBuilder = new StringBuilder("value_test_this");
strBuilder.Replace('e','E');
因爲字符串是不可變的,請問怎麼在string類的Replace
作品,字符串類替換和StringBuilder的替代
string s = "value_test_this";
string m = s.Replace('e','E');
StringBuilder strBuilder = new StringBuilder("value_test_this");
strBuilder.Replace('e','E');
因爲字符串是不可變的,請問怎麼在string類的Replace
作品,字符串類替換和StringBuilder的替代
如果你做一個與string.replace它只是要創建一個新的字符串(因爲,如你說,它是不可改變的)。在StringBuilder中沒有創建新的字符串,你得到了修改。
它在內存中創建另一個字符串,然後將m
指向該新字符串。舊的字符串也停留在內存中。
而這正是爲什麼StringBuilder
應該使用如果頻繁修改字符串。
如果你想知道爲什麼字符串是在C#中一成不變的,看this SO discussion
檢查這篇文章會解釋你想要[爲什麼要使用StringBuilder在字符串來獲得更好的性能]的東西給你(HTTP:/ /pranayamr.blogspot.com/2011/02/why-to-user-stringbuilder-over-string.html) – 2011-04-27 08:11:41