连接字符串的最有效方法是什么?
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如果您使用它会很尴尬和难看当场为它创建一个数组。