连接字符串的最有效方法是什么?
StringBuilder
使用案例的更多详细信息,请参见此处。
String.Format
在类固醇上一样。从性能的角度来看,在一个班轮上,班次要比+
和String.Concat
慢一点StringBuilder
,但比在多个班次上要慢,但要好得多。实际上,性能差异是如此之大,以至于如果我只需要选择一种连接$
方式,那么我将使用... 来选择字符串插值。如果有两种方式,则将其添加StringBuilder
到我的工具箱中。有了这两种方式,您就可以设置好。
String.Join
下面的答案没有+
道理,实际上,这是连接字符串的一种不好的方法,但这出乎意料的是快速的性能明智的选择。答案为什么很有趣。String.Concat
并且String.Join
都可以作用于数组,但String.Join
实际上更快。显然,String.Join
与相比String.Concat
,它是相当复杂且更优化的,部分原因是它的操作类似于StringBuilder
首先计算字符串长度,然后使用UnSafeCharBuffer受益于此知识来构造字符串。
String.Join
还需要建设,这似乎资源低效权的阵列?......原来,+
和String.Concat
他们的选民结构阵列反正。因此,手动创建数组并将其馈入数组的String.Join
速度相对较快...但是,在几乎所有实际方式上,它的StringBuilder
性能仍然不尽人意String.Join
,而$
在长字符串上则稍慢一些,并且速度要快得多。更不用说String.Join
如果您使用它会很尴尬和难看当场为它创建一个数组。