StringBuilder.ToString()的复杂性是什么

时间:2014-06-16 19:08:57

标签: c# big-o stringbuilder

在C#中,StringBuilder.ToString()的复杂性是什么?是O(1),O(N)还是其他什么?

1 个答案:

答案 0 :(得分:1)

它在框架版本之间有所不同;旧版本StringBuilder直接使用string,因此.ToString()不需要额外费用:它只是直接提供数据(这可能意味着超大,但它可以使用) ;所以O(1)。

在较新的框架版本中,它使用char[]后备缓冲区,所以现在当你.ToString()时,它可能需要复制2 x Length个字节,使其成为O(N)。