To change snakes direction I first have to press upArrow and then the new direction of the snake, and the snake is going in that direction until I hit upArrow again. So, to change direction to the left you need to press upArrow and then leftArrow. I want that to disappear, when I press left to make snake go left. Basically up arrow is pausing the game and I dont know why.
            if (Console.KeyAvailable && Console.ReadKey(true).Key == ConsoleKey.UpArrow)
            {
                keyinfo = Console.ReadKey();
                Console.WriteLine(ConsoleKey.UpArrow);
            }
            if (Console.KeyAvailable && Console.ReadKey(true).Key == ConsoleKey.DownArrow)
            {
                keyinfo = Console.ReadKey();
                Console.WriteLine(ConsoleKey.DownArrow);
            }
            if (Console.KeyAvailable && Console.ReadKey(true).Key == ConsoleKey.LeftArrow)
            {
                keyinfo = Console.ReadKey();
                Console.WriteLine(ConsoleKey.LeftArrow);
            }
            if (Console.KeyAvailable && Console.ReadKey(true).Key == ConsoleKey.RightArrow)
            {
                keyinfo = Console.ReadKey();
                Console.WriteLine(ConsoleKey.RightArrow);
            }
            if (keyinfo.Key == ConsoleKey.UpArrow)
            {
                j--;
            }
            if (keyinfo.Key == ConsoleKey.DownArrow)
            {
                j++;
            }
            if (keyinfo.Key == ConsoleKey.LeftArrow)
            {
                k--;
            }
            if (keyinfo.Key == ConsoleKey.RightArrow)
            {
                k++;
            }
				
                        
You're calling
ReadKeytoo many times. You should call it once and then store the result in a variable: