我的静态方法返回如下的串联字符串
return (Sb.ToString() + " " + ds.Tables[1].Rows[0].ItemArray[0].ToString() + " " + ds.Tables[2].Rows[0].ItemArray[0].ToString());
这是一个好/坏的做法,还是我应该使用stringbuilder ....
单个镜头中的字符串连接将比使用a更快StringBuilder- 尽管如果Sb已经是a StringBuilder,则可能有意义地追加到它(假设它是局部变量).假设这实际上是来自数据库的数据,那么获取它所花费的时间将大大超过此处的字符串连接.
请注意,您不需要所有这些调用ToString()- 这也可以:
return (Sb + " " + ds.Tables[1].Rows[0].ItemArray[0] + " " +
ds.Tables[2].Rows[0].ItemArray[0]);
Run Code Online (Sandbox Code Playgroud)
这是使用现有构建器的等效项:
return Sb.Append(" ")
.Append(ds.Tables[1].Rows[0].ItemArray[0])
.Append(" ")
.Append(ds.Tables[2].Rows[0].ItemArray[0])
.ToString();
Run Code Online (Sandbox Code Playgroud)
这可能会稍快一点 - 这将取决于各种事情.就个人而言,我可能会使用连接版本,因为它的IMO稍微简单一些.我非常怀疑你会发现性能差异很大.请注意,这是一个特例,因为你已经有了StringBuilder; 在连接一组项目的一般情况下,它们都可以在一个编译时表达式中指定,连接可以更快,因为单个方法调用可以提供所有必需的信息.
如果您需要更多详细信息和指南,我有一个关于StringBuildervs字符串连接的页面.
| 归档时间: |
|
| 查看次数: |
350 次 |
| 最近记录: |