我正在审查一些代码,我看到大量的字符串连接,但它们都是非常小的字符串.像这样的东西:
public string BuildList()
{
return "A" + GetCount() + "B" + TotalCount() + "C" + AMountLeft()
+ "D" + DaysLeft + "R" + Initials() + "E";
}
Run Code Online (Sandbox Code Playgroud)
我正在简化它,但总的来说,最长的字符串大约是300个字符,数量+大约是20个.我试图弄清楚它是否值得将它转换为StringBuilder并做类似这样的事情:
public string BuildList()
{
var sb = new StringBuilder();
sb.Append("A");
sb.Append(GetCount());
sb.Append("B");
sb.Append(TotalCount());
sb.Append("C");
sb.Append(AmountLeft());
sb.Append("D");
// etc . .
}
Run Code Online (Sandbox Code Playgroud)
我看不出与测试有很大的不同,但想看看是否有一个关于使用StringBuilder的良好的盈亏平衡规则(字符串长度或不同连接数)?
对于具有有限数量的变量字符串的这种固定情况,并且在这些值之间具有始终相同的文本部分,我个人会在那里使用字符串格式.这样,您的意图变得更加清晰,并且更容易看到发生了什么:
return string.Format("A{0}B{1}C{2}D{3}R{4}E",
GetCount(), TotalCount(), AmountLeft(), DaysLeft(), Initials());
Run Code Online (Sandbox Code Playgroud)
请注意,string.Format它比稍微慢一点string.Concat(正如其他人所说的那样,在使用时构建字符串时使用+).但是,字符串连接不太可能成为应用程序中的瓶颈,因此您应该优先考虑微优化,直到成为实际问题.
| 归档时间: |
|
| 查看次数: |
146 次 |
| 最近记录: |