我在 C# 中进行了大量的字符串操作,并且确实需要每个字符存储一个字节的字符串。这是因为我需要同时在内存中存储千兆字节的文本,这会导致内存不足的问题。我确定该文本永远不会包含非 ASCII 字符,因此出于我的目的,System.String 和 System.Char 将所有内容存储为每个字符两个字节的事实既不必要又是一个真正的问题。
我即将开始编写我自己的 CharAscii 和 StringAscii 类 - 字符串 1 基本上将其数据保存为 byte[],并公开类似于 System.String 所做的字符串操作方法。然而,这似乎需要做很多工作来做一些看起来像一个非常标准的问题,所以我真的在这里发帖以检查是否还没有更简单的解决方案。例如,是否有某种方法可以使 System.String 在内部将数据存储为我没有注意到的 UTF8,或者以其他方式解决问题?