之前在东软代码生成器的代码中,我们经常看到strbuilder的使用。在之前,无论是机房收费系统还是学生信息管理系统,用的居多还是string。这次这里使用这个一个对象,所以小小的研究一下。花了一点时间做了一个小demo来熟悉一下。
和string在效率的执行的差异
在东软中,主要是用来拼接一些sql的字符串。就是这个对象常用的方法append,直接来看看例子和执行的效率。
demo
stringbuilder
private void button1_Click(object sender, EventArgs e) { System.Text.StringBuilder sb = new System.Text.StringBuilder(); int i = 0; DateTime StartTime = DateTime.Now; while ( i < 10000 ) { sb.Append( i.ToString() ); i++; } DateTime EndTime = DateTime.Now; MessageBox.Show("stringbuilder的执行时间:" + (EndTime - StartTime)); }
string
string sb1 = null; int i = 0; DateTime StartTime = DateTime.Now; while ( i < 10000 ) { sb1 += i; i++; } DateTime EndTime = DateTime.Now; MessageBox.Show("string的执行时间:" + (EndTime - StartTime))
结果
简单的算术得到的答案是:42倍。当然这只是其中某个时刻的执行效果,但足以说明问题。
常用的方法
通过上面的例子,可以轻易的看到string和stringbuilder在对于字符串拼接上效率的差异是非常大的,所以推荐在执行大量的数据操作时就很有必要使用stringbuilder。
简单介绍一下简单的方法
Append
sb.Append("学校:好大学"); sb.Append("姓名:王二麻子"); string sbtwo=sb.ToString(); MessageBox.Show(sbtwo);
Appendformat
int MyInt = 25; MessageBox.Show(MyInt.ToString()); sb.AppendFormat("{0:C} ", MyInt); MessageBox.Show(sb.ToString());
将int数据类型转换为人民币,要是在现实中也这样简单就好了,在代码过把瘾也是不错的。
效果
Insert
sb.Append("I am a man!"); mes(); sb.Insert(6, "good"); mes();
Replace
sb.Append("I am a man!"); mes(); sb.Replace('!','?'); mes();
总的来说这些方法,都比较常见常用。还是不错的东西的,还有一些在查资料过程遇到比较好的东西。
http://terrylee.cnblogs.com/archive/2005/12/26/304876.html
进一步了解string
http://lixianhuei.cnblogs.com/archive/2005/12/27/305445.html