【发布时间】:2010-12-15 03:11:50
【问题描述】:
我想问一下您认为清除内容以重用 StringBuilder 的最佳方式是什么(持续时间更少/消耗资源更少)。想象以下场景:
StringBuilder sb = new StringBuilder();
foreach(var whatever in whateverlist)
{
sb.Append("{0}", whatever);
}
//Perform some stuff with sb
//Clear stringbuilder here
//Populate stringbuilder again to perform more actions
foreach(var whatever2 in whateverlist2)
{
sb.Append("{0}", whatever2);
}
在清除 StringBuilder 时,我可以想到两种可能性:
sb = new StringBuilder();
或
sb.Length = 0;
清除它的最佳方法是什么?为什么?
谢谢。
编辑:我提到了当前的 .NET 3.5 版本。
【问题讨论】:
-
不是答案,但读起来很有趣:bobondevelopment.com/2007/06/11/…
-
不包括 StringBuilder.Clear() 方法作为替代方法的原因是什么?
-
@Rune: c# 4.0 还没有出来,它只有 4.0。在 MSDN 上它说:支持:4。
-
我很幸运,c#4.0 已经发布了blogs.msdn.com/somasegar/default.aspx
-
我想知道为什么
Length是可写的,但没有读/写“文本”属性?说sb.Text = "";似乎比sb.Length = 0;更清楚,而Text属性也有助于在否则必须说sb.Length = 0; sb.Append(StuffToStartWith);的常见情况下。
标签: c# .net optimization .net-3.5