Сохранение строки как UTF8 в C #

Я делаю много манипуляций со строками в C #, и мне действительно нужно, чтобы строки хранились по одному байту на символ. Это потому, что мне нужно гигабайт текста одновременно в памяти, и это вызывает проблемы с нехваткой памяти. Я точно знаю, что этот текст никогда не будет содержать не-ASCII-символов, поэтому для моих целей тот факт, что System.String и System.Char хранят все как два байта на символ, является и ненужным, и реальной проблемой.

Я собираюсь начать кодировать мои собственные классы CharAscii и StringAscii - строка, в основном, будет хранить свои данные как byte [] и раскрывать методы манипуляции со строками, аналогичные тем, которые использует System.String. Однако кажется, что для выполнения чего-то, что кажется очень стандартной проблемой, требуется много работы, поэтому я действительно публикую здесь, чтобы проверить, что более простого решения уже нет. Есть ли, например, какой-нибудь способ заставить System.String внутренне хранить данные в формате UTF8, который я не заметил, или каким-либо другим способом обойти проблему?

Ответы на вопрос(4)

Ваш ответ на вопрос