stringbuilder的学习

因为之前项目中使用string发现数据变大后使用str += str1 变得越来越慢,查了下具体原理。

string是一个不可变字符,当我使用str += str1 时候,他会重新给str初始化一次,当数据变大时候  赋值时间就越来越长,测试代码:

string str = "";
StringBuilder strbuilder = new StringBuilder(" ");
Int64 num = Convert.ToInt64(textBox1.Text);
DateTime dt = DateTime.Now;
for (Int64 i = 0; i < num; i++)
{
//str += i.ToString();
//string 追加
//strbuilder.Append(i);
//stringbuilder追加


//str = strbuilder.ToString();
//str = " ";
//strbuilder = new StringBuilder(" ");
}
DateTime dt1 = DateTime.Now;
label1.T

string += i.tostring()当测试一万次加 时候需要68MS ,十万次加时候需要17147MS,百万次等待时间太长不做测试。

使用strbuilder.Append(i);十万次18MS,百万次132MS,千万次1505MS。

可以看出strbuilder.Append(i),没有因为数据过大时候累加时间。

所以在这种大数据追加修改情况下,推荐使用StringBuilder。

还有一个问题就是C#控件的text属性是string类型,赋值过去的话还是需要很长的时间,暂时没有解决这个问题

转载于:https://www.cnblogs.com/FearMO/p/4256137.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值