我正在使用字符串构建器来更有效地处理我的信息(通过选择),在打开选项的情况下,它会将其附加到列表中。
我这样做每秒(至少),我想知道,使用StringBuilder.Clear();
或StringBuilder.Lenght = 0;
我不确定这两者中哪一个有更好的内存管理,我希望有人知道。或者甚至存在差异。
答案 0 :(得分:1)
Clear()
后来(自4.0起)引入Length
。这是主要区别。如果您不考虑支持较低的.NET版本,请转到Clear()
。 Performancewise Length = 0
应该更快,因为Clear()
称它为实习生,但它也应该没有太大的区别,特别是如果你每秒只调用一次。避免使用Premature Optimization。我会选择Clear()
,因为它更具可读性,并且只在性能关键的情况下使用Length = 0
,我用完了其他选项。
这是Microsoft的源代码实现:
// Convenience method for sb.Length=0;
public StringBuilder Clear() {
this.Length = 0;
return this;
}
https://referencesource.microsoft.com/#mscorlib/system/text/stringbuilder.cs
Mono正在使用相同的实现。