gpt4 book ai didi

c# - 这个 c# return 语句在性能方面是好是坏?

转载 作者:太空宇宙 更新时间:2023-11-03 17:16:23 24 4
gpt4 key购买 nike

我的静态方法返回如下连接的字符串,如下所示

返回 (Sb.ToString() + ""+ ds.Tables[1].Rows[0].ItemArray[0].ToString() + ""+ ds.Tables[2].Rows[ 0].ItemArray[0].ToString());

这是一个好的/坏的做法还是我应该使用 stringbuilder ....

最佳答案

单次字符串连接比使用 StringBuilder 更快 - 尽管如果 Sb 已经是 StringBuilder,它 可能 附加到它是有意义的(假设它是一个局部变量)。假设这实际上是来自数据库的数据,无论如何,获取它所花费的时间将大大超过这里的字符串连接。

请注意,您不需要对 ToString() 进行所有这些调用 - 这也可以:

return (Sb + " " + ds.Tables[1].Rows[0].ItemArray[0] + " " + 
ds.Tables[2].Rows[0].ItemArray[0]);

这是使用现有构建器的等价物:

return Sb.Append(" ")
.Append(ds.Tables[1].Rows[0].ItemArray[0])
.Append(" ")
.Append(ds.Tables[2].Rows[0].ItemArray[0])
.ToString();

可能会稍微快一些——这将取决于各种因素。就我个人而言,无论如何我可能会使用连接版本,因为它在 IMO 中稍微简单一些。我非常怀疑您会发现性能有很大差异。请注意,这是一个特殊情况,因为您已经有了一个 StringBuilder;在连接一组项目的一般情况下,它们都可以在一个编译时表达式中指定,连接可以更快,因为单个方法调用可以提供所有必需的信息。

我有一个 page on StringBuilder vs string concatenation如果您需要更多详细信息和指南。

关于c# - 这个 c# return 语句在性能方面是好是坏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2543425/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com