最有效的方法来连接字符串?
连接字符串的最有效方法是什么?
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