C#中stringBuilder和string的区别

发布于:2022-12-16 ⋅ 阅读:(726) ⋅ 点赞:(0)

  stringBuffer 是字符串变量(线程安全)

  stringBuilder 是字符串变量(非线程安全

1、string

   string是一个不可变的字符串,每次对string类型进行运算(赋值或拼接)的时候其实相当于重新生成了一个新的string对象,然后指针指向了新的string对象,会对系统的性能产生影响,不适合大量、频繁字符串的拼接。

    
      

2、StringBuilder

       stringBuilder提供 Append方法,能在已有对象的原地进行字符串的修改,一般情况下看不出和string有和差异,但是如果对大量字符串进行添加操作,stringbuilder耗费的时间比string少的多。

       除了append的方法,还有其他方法:
       StringBuilder.Append   将信息追加到当前   StringBuilder   的结尾。      
       StringBuilder.AppendFormat   用带格式文本替换字符串中传递的格式说明符。     
       StringBuilder.Insert   将字符串或对象插入到当前   StringBuilder   对象的指定索引处。     
       StringBuilder.Remove   从当前   StringBuilder   对象中移除指定数量的字符。     
       StringBuilder.Replace   替换指定索引处的指定字符。  

    一般调用 StringBuilder sbSqlQuery = new StringBuilder();

sbSqlQuery.append......

       其实还有一个stringBuffer,可将字符串缓冲区安全的用于多个线程,可以在必要时同步,所以操作就像是以串行顺序发生,该顺序与所涉及到的每个线程进行的方法调用一致。

      他们三者的优先使用顺序:stringBuilder(快)>stringBuffer>string


网站公告

今日签到

点亮在社区的每一天
去签到