using System;
using System.Collections.Generic;
using System.Text;
using System.Collections;

namespace QueueDemo
{
   struct Message
   {
      public string Text;
      public string To;
      public string From;
   }
   class Program
   {
      static void Main(string[] args)
      {
         Queue mq = new Queue();
         Message m = new Message();
         m.Text = "Przykładowy tekst";
         m.To = "użytkownik1";
         m.From = "użytkownik2";
         mq.Enqueue(m);

         m = new Message();
         m.Text = "Inny tekst";
         m.To = "użytkownik3";
         m.From = "użytkownik2";
         mq.Enqueue(m);

         Console.WriteLine(string.Format("{0} wiadomości do przetworzenia.", mq.Count));

         m = (Message)mq.Dequeue();
         Console.WriteLine(string.Format("Z kolejki pobrano wiadomość „{0}”, pozostało {1}.",
          m.Text, mq.Count));

         m = (Message)mq.Dequeue();
         Console.WriteLine(string.Format("Z kolejki pobrano wiadomość „{0}”, pozostało {1}.",
          m.Text, mq.Count));

         Console.ReadLine();
      }
   }
}
