c# - string.Replace 或 stringBuilder.Replace()

标签 c# string stringbuilder

我是 C# 的新手,所以请原谅我的错误。

我想在每次调用该段代码时(每次调用 2-4 次)替换字符串的某些部分。 我想知道哪种方法在性能方面更好:string.ReplacestringBuilder.Replace()

如果这段代码被并发调用10.000次呢??

最佳答案

找出哪个更快的最佳方法是针对您的特定问题对其进行基准测试 - 编写一个简单的测试工具并对两个选项进行计时。

话虽如此 - C# 字符串是 immutable ,这意味着您无法在创建后更改它们。当您调用 String.Replace 时,运行时必须为结果创建一个新的 String 实例。这意味着对同一字符串的一系列更改会很慢,因为运行时必须为每次操作创建一个新对象,每次都分配内存并复制字符串数据。

StringBuilder 专门设计为针对此类情况的可变字符串 - 以避免在每次操作时创建新的 String 实例。

因此,如果您对同一个字符串执行一系列 Replace 调用,StringBuilder 几乎肯定会更快。

关于c# - string.Replace 或 stringBuilder.Replace(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19044746/

相关文章:

c# - ClickOnce 和 IsolatedStorage

java - 将字符串转换为字符数组

java - 将十六进制字节数组解码为特定代码页在随后编码时会带来错误的结果

java - String、StringBuffer 和 StringBuilder

java - 写入 StringBuilder 时某些字符丢失

javascript - 获取文档的部分以匹配 HTML 模板

c# - 使用 Windows 窗体设计器开发程序的 UI 是否会产生任何开销?

c# - 来自 System.Xml.XmlReader(C# 和 .Net)的当前行号

c# - 在原始文本字符串中查找链接

scala - 为什么这段代码编译并在执行时给出运行时错误