Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 清除StringBuilder对象';当前字符串_C#_Stringbuilder - Fatal编程技术网

C# 清除StringBuilder对象';当前字符串

C# 清除StringBuilder对象';当前字符串,c#,stringbuilder,C#,Stringbuilder,可能重复: 有没有一种快速简便的方法来摆脱StringBuilder当前持有的内容 我正在寻找Clear()方法,但找不到它。;) 我想做什么 stringBuilderObject = "" 或者类似的东西。这应该可以做到;) stringBuilderObject = new StringBuilder(); // Let the GC do its job 这就行了 stringBuilderObject.Length = 0; 不得不重新分配一个字符串生成器对象可能和仅仅尝试使

可能重复:

有没有一种快速简便的方法来摆脱StringBuilder当前持有的内容

我正在寻找Clear()方法,但找不到它。;)

我想做什么

stringBuilderObject = ""
或者类似的东西。

这应该可以做到;)

stringBuilderObject = new StringBuilder();  // Let the GC do its job
这就行了

stringBuilderObject.Length = 0;

不得不重新分配一个字符串生成器对象可能和仅仅尝试使用一个正常的字符串性能一样糟糕,这取决于它是如何使用的以及为什么被清除的。我不知道这一点。干得好。哦,我从没意识到长度有一个二传手。很好。重新分配一个字符串生成器对象可能和仅仅尝试使用一个正常的字符串性能一样糟糕,这取决于它的使用方式和清除原因。这也是我的第一个想法。但是StringBuilder作为参数传递给方法的情况(尽管可能不常见)如何?您的版本没有做到这一点,而stringBuilder.Remove(0,stringBuilder.Length)总是有效的。这就是我最终的结果,但我可能会选择长度=0。虽然这看起来可能有内存问题?@bobber205:From:“当前方法从当前实例中删除指定范围的字符。[…],并且当前实例的字符串值按长度缩短。当前实例的容量不受影响。”因此,选择此方法而不是StringBuilder不会影响内存问题。长度=0;如果您担心内存问题,则需要设置StringBuilder.Capacity=some_small_number.Duplicate@Your comment in JayZengs回答:我认为长度为0时,它可能会重复使用以前分配给它的内存,因此不应该存在问题。要检查这一点,请尝试使用Length=0,然后检查容量,容量应与将长度设置为零之前相同,如果要创建许多大小类似的字符串,这是一件好事。
stringBuilderObject.Remove(0, stringBuilderObject.Length)
stringBuilderObject.Length = 0;
stringBuilderObject.Remove(0,stringBuilderObject.Length)