This question already has answers here:
String.Join vs. StringBuilder: which is faster?

(5个答案)


2年前关闭。




here所示,String.Join的重载之一与原始指针一起使用,并使用称为UnSafeCharBuffer的东西。为什么是这样?是性能优化吗?

最佳答案



是的。

通常,您应该期望不安全的代码用于低级非托管语言互操作或性能优化。在这种情况下是后者。

然后,这提出了一个问题:



可以使用不同的优化技术来调整不同的场景。 StringBuilders已针对其方案进行了优化。

方案在几个方面有所不同。 Join提前确切知道将返回多少字节。 StringBuilder没有。 Join知道生成的字符串将只生成一次,但是StringBuilder必须有效地支持create,append,ToString,append,ToString等工作流程。等等。

关于c# - 为什么C#的String.Join在某一点上不使用StringBuilder?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54244620/

10-09 03:10