Any*_*are 3 c# string performance stringbuilder .net-3.5
问:
哪一个是性能明智的:清除字符串构建器
AStringBuilder.Remove(0,AStringBuilder.Length);
Run Code Online (Sandbox Code Playgroud)
string theString = AStringBuilder.ToString();
ABuilder.Replace(theString,String.Empty);
Run Code Online (Sandbox Code Playgroud)
AStringBuilder.Length = 0;
Run Code Online (Sandbox Code Playgroud)
注意:我使用不包含Clear()方法的Framework 3.5 .
更新事实证明您使用的是.net 3.5并且Clear已添加到.net 4.所以您应该使用Length = 0.实际上我可能会添加一个命名的扩展方法Clear来执行此操作,因为在我看来,它的可读性要高得多Length = 0.
我不会使用这些而是打电话Clear.
Clear是一种方便的方法,相当于将当前实例的Length属性设置为0(零).
我无法想象它比你的任何变种慢,我也无法想象清除一个StringBuilder实例可能会成为一个瓶颈.如果在任何地方都存在瓶颈,它将出现在附加代码中.
如果清除对象的性能确实是一个瓶颈,那么您需要为代码计时以了解哪个变体更快.在考虑性能时,从来没有真正替代基准测试.