Во-первых, если dictionaryRef.text является строкой (и это выглядит так), то вы уже получили нечто огромное (2 байта на символы).Проверьте это, он вполне может составлять большой (почти половина) общего объема выделяемой памяти.Вам следует подумать о кешировании этого (идея с базой данных хорошая, но файл можно использовать для последующего использования File.ReadAllLines в будущем исполнении).
Далее вы можете попробовать сделать немного лучше, чем метод Split в Mono.Он создает список, а затем в конце превращает его в массив (вызывающий ToList), из которого в итоге вы создаете новый список.Поскольку ваше требование (только '/ n') довольно простое, я предлагаю вам свернуть свой собственный метод Split (или скопировать / вставить / уменьшить тот из Mono) и избегать временных выделений памяти.
В любом случаепроводить много измерений (памяти), так как выделения, даже больше для строк, часто происходят там, где мы не смотрим; -)