c# - 是否可以在不先将字符转换为自己的字符串的情况下将字符插入字符串?

标签 c# string performance

我们正在开发一个性能敏感的文本序列化类,我们希望尽可能避免将值类型转换为引用类型。

String.Insert方法似乎要求您提供一个字符串参数,并且没有允许将单个字符作为值类型传入的重载。

我们经常遇到这种情况,所以我想确保没有其他方法可以在不将字符转换成它自己的字符串,然后将其传递给 String.Insert 的情况下完成此操作。

我们考虑过将父字符串视为基本数组,并从那个角度插入单个字符 - 但这似乎也不起作用(除非我们做错了什么)。
这种方法的主要问题是它似乎要求我们使用 String.AsCharArray方法,它会生成字符串的副本作为单独的引用对象 - 这是我们首先要避免的。

最佳答案

which produces a copy of the string as a separate reference object - which is what we're trying to avoid in the first place.

没有办法在不创建新字符串的情况下修改字符串,除非我没记错的话使用替换。您正在尝试使用已分配的内存调整字符串的大小。这就是为什么所有字符串方法都返回一个字符串并且不修改原始字符串的原因。

关于c# - 是否可以在不先将字符转换为自己的字符串的情况下将字符插入字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31972025/

相关文章:

string - 如何连接字符串+我?

正则表达式执行时间分析

android - 如何修复 Android 应用程序中的启动延迟和空白屏幕

c# - C# 中是否有任何连接字符串解析器?

c# - SortedDictionary.Count 的成本

string - xgettext - 如何提取由空值分割的字符串

c - 如何在 C 结构体中声明字符串?

java - 检查鼠标边界的更有效方法

c# - 温莎城堡 : Register by Convention with Named part

c# - AutoResetEvent 作为 C# 中的 Lock 替代品?