C#中的字符串类型有两种:string和StringBuilder。
string是一个不可变的类型,每次对其进行修改时都会创建一个新的字符串对象,因此频繁修改字符串会产生大量垃圾对象,影响性能。string适合于不频繁修改的场景,如字符串的查找、比较和拼接等操作。
StringBuilder则是一个可变的类型,它允许我们对字符串进行原地修改,避免了频繁创建字符串对象的问题,同时提高了效率。StringBuilder适合于频繁修改字符串的场景,如字符串的拼接、插入、删除等操作。
下面是一个简单的例子,演示了StringBuilder的用法:
StringBuilder sb = new StringBuilder();
for (int i = 0; i < 10000; i++)
{
sb.Append(i.ToString());
}
string result = sb.ToString();
在上面的例子中,我们创建了一个StringBuilder对象,并在一个循环中向其追加了10000个整数的字符串表示。最后,我们调用ToString()方法将StringBuilder对象转换为一个字符串。由于StringBuilder是可变的类型,这个操作的效率比直接使用string来拼接字符串高得多。