.NET中的字符串和字符串生成器有什麼區別?字符串和字符串生成器
回答
字符串是不可變的類型。在執行像串聯這樣的字符串操作的批次時,它具有不良性能特徵。
另一方面,Stringbuilders通過保持一個增長的緩衝區來克服這個弱點,以便每個級聯不太可能需要分配一個新的字符串。
由於字符串構建器會添加一些開銷,所以在進行一些重要的字符串工作時(例如在循環中),它們才真正需要。如果你的代碼很快,不要擔心。如果不是,請使用一個分析器來查看這個問題在你的案例中是否重要。
最後一點:這個答案實際上與ASP.NET毫無關係 - 對於.net和其他很多語言的字符串也是如此。
我認爲你的最後一段實際上比所有'真正'的答案都重要。 – ProfK 2010-01-04 05:36:36
http://en.csharp-online.net/CSharp_String_Theory%E2%80%94String_vs._StringBuilder
基本上String
s爲不可變的 - 你操縱每次一個是需要在內存中創建。 StringBuilder
在處理重複字符串連接和其他操作操作時,在內存和幾乎所有情況下都更容易。
您可以在此SO帖子中找到一些更好的討論:String vs. StringBuilder。
字符串是immutable和stringbuilder是可變的。
在面向對象和功能 編程,一個不可變的對象是 對象,其狀態被創建後不能被修改 。這是 與可變對象的對比,其中 可以在創建後進行修改。
不可變對象通常是有用的 因爲 複製和一些比較昂貴的操作可以被省略,簡化 程序代碼和 加速執行。但是,如果對象包含大量可更改數據,則使對象不可變通常爲 。 因此,許多語言都允許 用於不可變和可變的 對象。
每次對字符串對象進行連接時,會使用新的引用創建新的字符串對象,並將其分配給該對象。較舊的對象仍然會在內存中。
- 1. 字符串生成器和字典
- 2. 將字符串生成器拆分爲字符串字符串特定字符
- 3. 字符串和字符串生成器之間的差異
- 4. 生成字符串
- 5. 字符串生成器VS串
- 6. 字符串連接vs字符串生成器。性能
- 7. 比較兩個字符串字符串生成器
- 8. 將字符串生成器轉換爲json字符串
- 9. 字符串連接VS字符串生成器追加
- 10. 大字符串字符串生成器缺點
- 11. 生成查詢字符串
- 12. 生成隨機字符串
- 13. 生成excel表字符串
- 14. 熊貓生成字符串
- 15. 生成字符串中的
- 16. PHP - 生成字符串
- 17. 生成列表字符串
- 18. Java中的反向字符串不使用任何臨時字符串,字符或字符串生成器
- 19. RandomStringGenerator生成字母數字字符串
- 20. 字符串生成器vs列表
- 21. asp.net中的字符串生成器類
- 22. 尋求引用字符串生成器
- 23. 隨機字符串生成器(PHP)
- 24. 搜索字符串生成器對象
- 25. 循環生成字符串和變量
- 26. 生成字符串和內存不足
- 27. 優化字符串生成和測試
- 28. Java中的字符串子串生成
- 29. 替換字符串中的字符串和計數字符串的發生
- 30. 如何從普通字符串中生成JSON字符串?
可能的重複http://stackoverflow.com/questions/529999/when-to-use-stringbuilder – 2010-04-01 11:20:57
可能重複的[字符串與StringBuilder](http://stackoverflow.com/questions/73883/string- vs-stringbuilder) – nawfal 2014-07-16 20:15:15