Como posso modificar uma coleção de filas em um loop?

Eu tenho um cenário em que preciso remover um item da fila assim que for processado. Entendo que não consigo remover um item de uma coleção enquanto estiver em loop, mas estava pensando se algo poderia ser feito com o Enumerador, etc.

Este é apenas um exemplo básico que gera um erro "A coleção foi modificada depois que o enumerador foi instanciado".

Alguma sugestão? Muito obrigado!!!

O código é o seguinte:

     class Program
        {
            static void Main()
            {

                Queue<Order> queueList = GetQueueList();

                foreach (Order orderItem in queueList)
                {
                    Save(orderItem);
                    Console.WriteLine("Id :{0} Name {1} ", orderItem.Id, orderItem.Name);
                    queueList.Dequeue();
                }
                Console.Read();

            }

            private static void Save(Order orderItem)
            {
               //we are pretending to save or do something.
            }

            private static Queue<Order>GetQueueList()
            {
                Queue<Order> orderQueue = new Queue<Order>();
                orderQueue.Enqueue(new Order { Id = 1, Name = "Order 1" });
                orderQueue.Enqueue(new Order { Id = 1, Name = "Order 2" });
                orderQueue.Enqueue(new Order { Id = 2, Name = "Order 3" });
                orderQueue.Enqueue(new Order { Id = 3, Name = "Order 4" });
                orderQueue.Enqueue(new Order { Id = 4, Name = "Order 5" });
                return orderQueue;
            }
        }

        public  class Order
        {
            public int Id { get; set; }
            public string Name { get; set; }
        }

questionAnswers(3)

yourAnswerToTheQuestion