В свое время сам пытался копать эту тему(правда не глубоко

). Мой ответ — НИКАК или я чего-то существенное из виду упускаю. Ввод с консоли представлен в НЕТе в виде класса System.IO.__ConsoleStream. Этот класс даже не упоминается в MSDN и видимо неспроста — MS-у просто стыдно за него.

По своему функционалу он крайне ограничен и абсолютно не поддерживает seek-функционал(св-во CanSeek у "нормальных" потоков). А наличие такого фун-ла, в свою очередь, абсолютно необходимо если мы хотим перемещаться внутри потока "по-символьно" или для того, что бы хотя бы иметь возможность определить: длинна потока в настоящий момент 0 или не 0. Так что еще раз могу повторить, что мое мнение — НИКАК, но буду просто счастлив, если меня заставят(аргументипрованно, конечно) это мнение изменить.
данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение