当前位置: 移动技术网 > IT编程>开发语言>c# > 深入理解StringBuilder的使用方法

深入理解StringBuilder的使用方法

2019年07月18日  | 移动技术网IT编程  | 我要评论
今天用到了stringbuilder来拼接查询语句,发现这个真好用,决定做个小结。 百度一个stringbuilder的定义:string 对象是不可改变的。每次使用 s

今天用到了stringbuilder来拼接查询语句,发现这个真好用,决定做个小结。

百度一个stringbuilder的定义:string 对象是不可改变的。每次使用 system.string 类中的方法之一时,都要在内存中创建一个新的字符串对象,这就需要为该新对象分配新的空间。在需要对字符串执行重复修改的情况下,与创建新的 string 对象相关的系统开销可能会非常昂贵。如果要修改字符串而不创建新的对象,则可以使用 system.text.stringbuilder 类。

主要是stringbuilder的append()方法和capacity属性。

注意当capacity小于length时,capacity是以2倍的方式来扩充的。

using system;
using system.collections.generic;
using system.linq;
using system.text;
using system.threading.tasks;

namespace stringbuilder的使用
{
  class program
  {
    static void main(string[] args)
    {
      stringbuilder s = new stringbuilder();
      long datastart = datetime.now.ticks;
      for (int i = 0; i < 1000; i++)
      {
        s.append('a', i);
      }
      long dataend = datetime.now.ticks;
      console.writeline(s.capacity);
      console.writeline("用时:{0}", (dataend - datastart) / 100000.0);
      datastart = datetime.now.ticks;
      for (int i = 0; i < 1000; i++)
      {
        s.append('a', i);
        if (s.capacity < s.length)
        {
          s.capacity += 8;
        }
      }
      dataend = datetime.now.ticks;
      console.writeline("用时:{0}", (dataend - datastart) / 100000.0);
      console.read();
    }
  }
}

输出结果:

以上这篇深入理解stringbuilder的使用方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持移动技术网。

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网