How to discard buffered keypresses before Console.ReadKey in a C# console game loop
Drain the console input buffer with while (Console.KeyAvailable) Console.ReadKey(true) before you wait for a fresh key, and drain it every frame in a game loop so key repeat cannot pile up. How the buffer works on Windows and Unix in .NET 10, why held keys lag, the Unix echo trap, and FlushConsoleInputBuffer.