[C#] Kolejka

Poniżej znajduje się kod kolejki. Muszę dodać do niego jakąś zmienną w której będzie przechowywany element, który będzie usuwany, czyli po usunięciu, ma nie znajdować się w kolejce, a w tej zmiennej, aż do czasu usuwania kolejnej liczby. Jest mi to pilnie potrzebne, będę wdzięczny za pomoc

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;


namespace Main

{

    class Elem

    {

        private int wartosc;

        private Elem next;


        public Elem(int x)

        {

            wartosc = x;

            next = null;

        }


        public void setNext(Elem e)

        {

            next = e;

        }


        public Elem getNext()

        {

            return next;

        }


        public int getWartosc()

        {

            return wartosc;

        }

    }



    class Kolejka

    {

        Elem first, last;


        public Kolejka()

        {

            first = last = null;

        }


        public Elem getFirst()

        {

            return first;

        }


        public Elem getLast()

        {

            return last;

        }


        public void setLast(Elem e)

        {

            last = e;

        }


        public void setFirst(Elem e)

        {

            first = e;

        }



        public void add(int x)

        {


            Elem temp = new Elem(x);

            if (first == null)

            {

                first = last = temp;

            }

            else

            {

                last.setNext(temp);

                last = temp;

            }


        }


        /* sciaga z kolejki element na 1 miejscu */

        public void delete()

        {


            if (first != null)

            {

                if (first.getNext() == null)

                {

                    last = null;

                }


                first = first.getNext();



            }

            else Console.WriteLine("kolejka jest pusta");

        }


        /* wyswietla zawartosc kolejki */

        public void show()

        {

            if (first != null)

            {

                Elem temp = first;

                while (temp != null)

                {

                    Console.Write(temp.getWartosc() + " ");

                    temp = temp.getNext();

                }

                Console.WriteLine();

            }

            else

            {

                Console.WriteLine("kolejka jest pusta");

            }

        }






        /* menu */

        public static void menu()

        {

            Console.WriteLine("(0) MENU\n(1) ADD\n(2) DELETE\n(3) SHOW");

            Console.WriteLine("(4) EXIT");

        }

    }




    public class Program

    {

        public static void Main(String[] args)

        {



            Kolejka kolejka = new Kolejka();



            int t;

            String s;


            while ((s = Console.ReadLine()) != null)

            {

                t = int.Parse(s);


                switch (t)

                {

                    case 0: Kolejka.menu(); break;

                    case 1: Console.Write("co chcesz dodac?");

                        s = Console.ReadLine();

                        t = int.Parse(s);

                        kolejka.add(t);

                        break;

                    case 2: kolejka.delete(); break;

                    case 3: kolejka.show(); break;

                    case 4: return;

                }

            }


        }

    }


}