私は C# で多くの文字列操作を行っていますが、文字列を 1 文字につき 1 バイト格納する必要があります。これは、メモリ内で同時にギガバイトのテキストが必要であり、メモリ不足の問題を引き起こしているためです。このテキストに非 ASCII 文字が含まれることは決してないことは確かなので、System.String と System.Char がすべてを 1 文字あたり 2 バイトとして格納するという事実は、不要であり、実際の問題でもあります。
独自の CharAscii および StringAscii クラスのコーディングを開始しようとしています。文字列は基本的にデータを byte[] として保持し、System.String と同様の文字列操作メソッドを公開します。ただし、これは非常に標準的な問題のように見えることを行うには多くの作業が必要なように思われるため、ここに投稿して、まだ簡単な解決策がないことを確認します。たとえば、System.String に気づいていない UTF8 としてデータを内部的に格納する方法や、問題を回避する方法はありますか?