У массивов и строк есть ограничение, что ты не можешь в них держать более чем int.MaxValue элементов (символов).
Ну и конечно ты не можешь хранить больше данных, чем у тебя есть оперативной памяти.
В консоль ты можешь вывести сколько угодно - просто буфер консоли имеет ограниченные размеры и старые данные будут теряться.