Я бы очень рекомендовал использовать StreamReader вместо чтения всего текста в строку из соображений эффективности кучи. У меня было много проблем со строками более 2 Мб без особых усилий (на 32-битном .NET).
Вам нужно дальнейшее руководство? Мне кажется, вы можете искать помощь в лечении потока. Обычно программисты имеют больший опыт работы со строками и, следовательно, предпочитают строгие решения.
Если вы добавите еще некоторые подробности о структуре данных, я могу вам немного помочь. Пока только один общий указатель:
Все парсеры и лексеры общего назначения используют потоковую модель ввода. например Посмотрите на Coco / C # для простого в использовании генератора парсеров.