首页 > 代码库 > stringbuilder的学习
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类型,赋值过去的话还是需要很长的时间,暂时没有解决这个问题
stringbuilder的学习
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。