Почему удаляется первая буква строки

Код:

       Console.WriteLine("Вводите слова через Enter. Чтобы закончить нажмите Esc");
        do
        {
            string tempStr = Console.ReadLine();
            Console.WriteLine(tempStr);
        }
        while (Console.ReadKey().Key != ConsoleKey.Escape);

Нужно, чтобы по нажатию Esc производился выход из цикла while. Так и происходит, но если я, допустим, ввел "слово", то строка tempStr почему то становится "лово", причем если я до этого уже вводил что либо. Если убрать условие цикла то проблема уходит. Почему так происходит?

введите сюда описание изображения


Ответы (2 шт):

Автор решения: Igor

Вы считываете первый символ следующего ввода здесь:

(Console.ReadKey().Key != ConsoleKey.Escape)
→ Ссылка
Автор решения: aepot

Сделайте просто завершение с пустой строкой, а не по Esc

Console.WriteLine("Вводите слова через Enter. Чтобы закончить, просто нажмите Enter");
do
{
    string tempStr = Console.ReadLine();
    Console.WriteLine(tempStr);
}
while (tempStr.Length > 0);
→ Ссылка