最有效的方法来连接字符串?

连接字符串的最有效方法是什么?


StringBuilder.Append()方法比使用+运算符要好得多。 但是我发现,当执行1000个或更少的连接时, String.Join()StringBuilder更有效率。

StringBuilder sb = new StringBuilder();
sb.Append(someString);

String.Join的唯一问题是您必须使用公共分隔符连接字符串。 (编辑:)如@ryanversaw指出的,你可以使分隔字符串.Empty。

string key = String.Join("_", new String[] 
{ "Customers_Contacts", customerID, database, SessionID });

.NET Performance guru Rico Mariani在这个主题上写了一篇文章。 这并不像人们怀疑的那么简单。 基本的建议是这样的:

如果你的模式看起来像:

x = f1(...) + f2(...) + f3(...) + f4(...)

这是一个concat,它是zippy,StringBuilder可能无济于事。

如果你的模式看起来像:

if (...) x += f1(...)
if (...) x += f2(...)
if (...) x += f3(...)
if (...) x += f4(...)

那么你可能需要StringBuilder。

另一篇支持这一说法的文章来自Eric Lippert,他在那篇文章中详细描述了在一行+连接中执行的优化。


有6种类型的字符串连接:

  • 使用加号( + )符号。
  • 使用string.Concat()
  • 使用string.Join()
  • 使用string.Format()
  • 使用string.Append()
  • 使用StringBuilder
  • 在一个实验中,已经证明string.Concat()是最好的方法,如果单词少于1000(大约),如果单词超过1000,那么应该使用StringBuilder

    欲了解更多信息,请查看本网站。

    string.Join()vs string.Concat()

    这里的string.Concat方法等同于带有空分隔符的string.Join方法调用。 附加一个空字符串很快,但不这样做更快,所以string.Concat方法在这里会更好。

    链接地址: http://www.djcxy.com/p/50507.html

    上一篇: Most efficient way to concatenate strings?

    下一篇: Integrate WinForms project into WPF