多用用StringBuilder吧

王朝c#·作者佚名  2006-12-17
窄屏简体版  字體: |||超大  

如果要操作一个不断增长的字符串,请你不要再用String类了。为什么涕淌要这样说呢?我们来看看两个类的工作原理。

String类是一种传统的修改字符串的方式,它确实可以完成把一个字符串添加到另一个字符串上的工作没错。但是在.NET框架下,这个操作实在是划不来。因为系统先是把两个字符串写入内存,接着删除原来的String对象,然后创建一个String对象,并读取内存中的数据赋给该对象。这一来二去的,耗了不少时间。

而使用System.Text命名空间下面的StringBuilder类就不是这样了,它提供的Append方法,能够在已有对象的原地进行字符串的修改,简单而且直接。

当然,一般情况下你是觉察不出这二者效率的差异的,但如果你要对某个字符串进行大量的添加操作,那么用StringBuilder类所耗费的时间和String类简直不是一个数量级的。下面是一个例子,你自己试一试:

Imports System

Imports System.Text

Namespace StringBuilderSample

Class clsStrBuilder

Shared Sub Main()

Dim i As Integer

Dim startTime As DateTime

Dim stopTime As DateTime

'用String类来连接字符串

Console.WriteLine("String类")

Dim str As String = String.Empty

startTime = DateTime.Now

Console.WriteLine(("开始时间:" & startTime.ToString()))

For i = 0 To 99999

str &= i.ToString()

Next i

stopTime = DateTime.Now

Console.WriteLine(("结束时间:" & stopTime.ToString()))

'用StringBuilder类来连接字符串

Console.WriteLine("StringBuilder类")

Dim builder As New StringBuilder()

startTime = DateTime.Now

Console.WriteLine(("开始时间:" & startTime.ToString()))

For i = 0 To 99999

builder.Append(i.ToString())

Next i

stopTime = DateTime.Now

Console.WriteLine(("结束时间:" & stopTime.ToString()))

End Sub

End Class

End Namespace

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航