Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# string.Replace或stringBuilder.Replace()_C#_String_Stringbuilder - Fatal编程技术网

C# string.Replace或stringBuilder.Replace()

C# string.Replace或stringBuilder.Replace(),c#,string,stringbuilder,C#,String,Stringbuilder,我是C新手,请原谅我的错误 我想替换字符串的某些部分,每次调用该代码段2-4次。 我想知道在性能方面使用哪个方法更好:string.Replace还是stringBuilder.Replace 如果这段代码同时被调用10.000次会怎么样?使用String.Replace创建字符串后,它将立即替换所有位置。 如果你用一些例子来解释你的场景会更好 请看这个链接,它有一个很好的描述:使用字符串。替换创建字符串后,它将立即替换所有位置。 如果你用一些例子来解释你的场景会更好 查看此链接,它有一个很好的

我是C新手,请原谅我的错误

我想替换字符串的某些部分,每次调用该代码段2-4次。 我想知道在性能方面使用哪个方法更好:string.Replace还是stringBuilder.Replace

如果这段代码同时被调用10.000次会怎么样?

使用String.Replace创建字符串后,它将立即替换所有位置。 如果你用一些例子来解释你的场景会更好

请看这个链接,它有一个很好的描述:

使用字符串。替换创建字符串后,它将立即替换所有位置。 如果你用一些例子来解释你的场景会更好


查看此链接,它有一个很好的描述:

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

已经说过-C字符串是,这意味着在创建它们之后不能更改它们。调用String.Replace时,运行时必须为结果创建一个新的字符串实例。这意味着对同一字符串的一系列更改将很慢,因为运行时必须为每次操作创建一个新对象,分配内存并每次复制字符串数据

StringBuilder是专门为这种情况设计的可变字符串,以避免在每次操作时创建新的字符串实例


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

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

已经说过-C字符串是,这意味着在创建它们之后不能更改它们。调用String.Replace时,运行时必须为结果创建一个新的字符串实例。这意味着对同一字符串的一系列更改将很慢,因为运行时必须为每次操作创建一个新对象,分配内存并每次复制字符串数据

StringBuilder是专门为这种情况设计的可变字符串,以避免在每次操作时创建新的字符串实例

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

字符串替换与StringBuilder替换不同。但表面上它们是一样的。 StringBuilder纯粹是一种优化,但考虑到字符串使用的普遍性,它是至关重要的。string.Replace始终会创建一个新字符串–StringBuilder.Replace不会。string Replace与StringBuilder Replace不同。但表面上它们是一样的。
StringBuilder纯粹是一种优化,但考虑到字符串使用的普遍性,它是至关重要的。string.Replace始终创建一个新字符串–StringBuilder.Replace不创建新字符串。

如果有StringBuilder,请使用StringBuilder.Replace,如果有字符串,请使用string.Replace。所以基本上你是在问什么更快,字符串还是字符串生成器。那要看情况了,你自己量一下。首先编写清晰易读的代码,然后根据需要对性能进行优化。请注意,这两种方法将替换不同类使用的方法。所以..可能是@PhilippM的复制品:这就是我要找的。非常感谢如果有StringBuilder,请使用StringBuilder.Replace;如果有字符串,请使用StringBuilder.Replace。所以基本上你是在问什么更快,字符串还是字符串生成器。那要看情况了,你自己量一下。首先编写清晰易读的代码,然后根据需要对性能进行优化。请注意,这两种方法将替换不同类使用的方法。所以..可能是@PhilippM的复制品:这就是我要找的。非常感谢更新链接:更新链接: