需要大量的对字符串逐一频繁执行一些操作:插入,替换等基本操作。
被操作的字符串的长度为几十字节到30K不等。请问用什么办法来做效率会比较高一些???
现在程序执行时明显慢,我高度怀疑是字符串操作的效率低下导致的。当然是我编程的水平
不够了,我不是说C#处理字符串的能力不行。

解决方案 »

  1.   

    StringBuilder 类
    表示可变字符字符串。
    此类表示值为可变字符序列的类似字符串的对象。之所以说值是可变的,是因为在通过追加、移除、替换或插入字符而创建它后可以对它进行修改。String 对象串联操作总是用现有字符串和新数据创建新的对象。StringBuilder 对象维护一个缓冲区,以便容纳新数据的串联。如果有足够的空间,新数据将被追加到缓冲区的末尾;否则,将分配一个新的、更大的缓冲区,原始缓冲区中的数据被复制到新的缓冲区,然后将新数据追加到新的缓冲区。 String 或 StringBuilder 对象的串联操作的性能取决于内存分配的发生频率。String 串联操作每次都分配内存,而 StringBuilder 串联操作仅当 StringBuilder 对象缓冲区太小而无法容纳新数据时才分配内存。因此,如果串联固定数量的 String 对象,则 String 类更适合串联操作。这种情况下,编译器甚至会将各个串联操作组合到一个操作中。如果串联任意数量的字符串,则 StringBuilder 对象更适合串联操作;
      

  2.   

    StringBuilder我是知道的,还有没有别的做法,或者在用StringBuilder时有哪些细节需要注意???
    请注意对于我的问题,分从来都不是问题!!!