[C#] string 和 StringBuilder 的比較
String Vs StringBuilder
string
- 名字空間為
System
- 例項不可變(只讀)
- 當值連續變化時,會出現效能降級
- 執行緒安全
StringBuilder
(可變的string
)
- 所在名字空間為
System.Text
- 例項可變
- 當對存在的例項進行修改時,顯示出更好的效能
下面的例子,將建立2001個字串,而其中的2000個都將被捨棄。
string s = string.Empty;
for (i = 0; i < 1000; i++) {
s += i.ToString() + " ";
}
而改成使用StringBuilder
就能減少頻繁的記憶體分配,從而改善效能:
StringBuilder sb = new StringBuilder();
for (i = 0; i < 1000; i++) {
sb.Append(i);
sb.Append(' ');
}
簡而言之,string
物件不可變,對字串的操作都將在記憶體中產生副本,從而影響效能,StringBuilder
相反,至於執行緒安全,不清楚使用場景,應該是字串變數如果不重新賦值,可以保證內容不會被中途改變。
[1] https://stackoverflow.com/questions/3069416/difference-between-string-and-stringbuilder-in-c-sharp
相關文章
- C# string、stringBuffer和stringBuilderC#UI
- Oracle date 型別比較和String比較Oracle型別
- String、StringBuilder和StringBufferUI
- String和StringBuilder的區別UI
- String、StringBuffer和StringBuilder類的UI
- StringBuilder和String 的區別?UI
- 【Java】String、StringBuilder和StringBufferJavaUI
- 67. StringBuilder和String 的區別?UI
- Java中的字串操作(比較String,StringBuiler和StringBuffer)Java字串UI
- String、StringBuffer、StringBuilder的理解UI
- StringBuilder 比 String 快?空嘴白牙的,證據呢!UI
- String、StringBuffer、StringBuilder剖析UI
- String、StringBuffer、StringBuilder的區別UI
- String、StringBuilder、StringBuffer的區別UI
- String,StringBuilder,StringBuffer的區別UI
- 使用String. localeCompare比較字串字串
- 轉換String三種方式比較:toString()、String.valueOf()、(String)
- PHP基礎-資料型別-string和int比較PHP資料型別
- String,StringBuffer與StringBuilder的區別UI
- String、StringBuffer、StringBuilder區別?UI
- String/StringBuilder字串拼接操作UI字串
- String,StringBuffer,StringBuilder區別UI
- Go與C#的比較 - RedditGoC#
- 老生常談 String、StringBuilder、StringBufferUI
- 第二十節:詳細講解String和StringBuffer和StringBuilder的使用UI
- js 深比較和淺比較JS
- Android- String、StringBuffer、StringBuilder區別AndroidUI
- java複習之 String,StringBuffer,StringBuilderJavaUI
- Go和Python比較的話,哪個比較好?GoPython
- ImageMagic 和 GraphicsMagick 的比較
- ArrayList和LinkedList的比較
- ==和equals方法的比較
- 【扯皮系列】一篇與眾不同的 String、StringBuilder 和 StringBuffer 詳解UI
- 面試必知:String、StringBuilder、StringBuffer的區別面試UI
- 你必須搞清楚的String,StringBuilder,StringBufferUI
- 從原始碼看String,StringBuffer,StringBuilder的區別原始碼UI
- Java 之String、StringBuffer 和 StringBuilder 三者區別介紹JavaUI
- C#比較兩個字串的相似度【轉】C#字串