我是 C# 的新手,所以请原谅我的错误。
我想在每次调用该段代码时(每次调用 2-4 次)替换字符串的某些部分。
我想知道哪种方法在性能方面更好:string.Replace
或 stringBuilder.Replace()
?
如果这段代码被并发调用10.000次呢??
最佳答案
找出哪个更快的最佳方法是针对您的特定问题对其进行基准测试 - 编写一个简单的测试工具并对两个选项进行计时。
话虽如此 - C# 字符串是 immutable ,这意味着您无法在创建后更改它们。当您调用 String.Replace
时,运行时必须为结果创建一个新的 String
实例。这意味着对同一字符串的一系列更改会很慢,因为运行时必须为每次操作创建一个新对象,每次都分配内存并复制字符串数据。
StringBuilder
专门设计为针对此类情况的可变字符串 - 以避免在每次操作时创建新的 String
实例。
因此,如果您对同一个字符串执行一系列 Replace
调用,StringBuilder
几乎肯定会更快。
关于c# - string.Replace 或 stringBuilder.Replace(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19044746/