簡體   English   中英

string.Replace或stringBuilder.Replace()

[英]string.Replace or stringBuilder.Replace()

我是C#的新手,所以請原諒我的錯誤。

我想每次調用該段代碼時都替換字符串的某個部分(每次調用2-4次)。 我想知道哪種方法在性能方面更適合使用: string.ReplacestringBuilder.Replace()嗎?

如果這段代碼被同時調用10.000次怎么辦?

找出哪個更快的最好方法是針對您的特定問題對其進行基准測試-編寫簡單的測試工具並計時這兩個選項。

話雖這么說-C#字符串是不可變的 ,這意味着創建它們后就無法更改它們。 調用String.Replace ,運行時必須為結果創建一個新的String實例。 這意味着對同一字符串的一系列更改將很慢,因為運行時必須為每次操作創建一個新對象,分配內存並每次復制字符串數據。

StringBuilder被專門設計為針對這種情況的可變字符串-避免在每次操作時創建新的String實例。

因此,如果對同一字符串執行一系列Replace調用,則StringBuilder幾乎可以肯定會更快。

生成字符串后,使用String.Replace() ,它將立即在所有位置替換。 如果您通過一些示例來說明您的情況,那就更好了。

看一下這個鏈接,它有一個不錯的描述: 比較RegEx.Replace,String.Replace和StringBuilder.Replace –哪個性能更好?

String替換與StringBuilder替換不同。 但從表面上看,它們是相同的。 StringBuilder純粹是一種優化,但是考慮到字符串用法的普遍性,它至關重要。 String.Replace始終創建一個新字符串StringBuilder.Replace不會。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM