using System.Collections.Generic;
using System.Threading.Tasks;
using System.Collections;
namespace ConsoleApplication4
public Customer(string FirstName, string LastName, string CMeal)
this.FirstName = FirstName;
this.LastName = LastName;
{ none, appetizer, main, desert, done }
public Customer RestCustomer;
Queue CustQueue = new Queue();
public void QueueCustomers()
RestCustomer.FirstName = "AAAA";
RestCustomer.LastName = "BBBB";
RestCustomer.CMeal = Meals.none.ToString();
CustQueue.Enqueue(RestCustomer);
RestCustomer.FirstName = "CCCC";
RestCustomer.LastName = "DDDD";
RestCustomer.CMeal = Meals.appetizer.ToString();
CustQueue.Enqueue(RestCustomer);
RestCustomer.FirstName = "EEEE";
RestCustomer.LastName = "FFFF";
RestCustomer.CMeal = Meals.main.ToString();
CustQueue.Enqueue(RestCustomer);
RestCustomer.FirstName = "GGGG";
RestCustomer.LastName = "HHHH";
RestCustomer.CMeal = Meals.desert.ToString();
CustQueue.Enqueue(RestCustomer);
RestCustomer.FirstName = "IIII";
RestCustomer.LastName = "JJJJ";
RestCustomer.CMeal = Meals.done.ToString();
CustQueue.Enqueue(RestCustomer);
Console.WriteLine("Count of Items in the Queue at the start :" + CustQueue.Count);
RestCustomer = (Customer)CustQueue.Dequeue();
Console.WriteLine("FName: " + RestCustomer.FirstName);
Console.WriteLine("LName: " + RestCustomer.LastName);
Console.WriteLine("Meals: " + RestCustomer.CMeal);
Console.WriteLine("Count of Items in the Queue after first Dequeue:" + CustQueue.Count);
Console.WriteLine("----------------------------------------------------------------");
RestCustomer = (Customer)CustQueue.Dequeue();
Console.WriteLine("FName: " + RestCustomer.FirstName);
Console.WriteLine("LName: " + RestCustomer.LastName);
Console.WriteLine("Meals: " + RestCustomer.CMeal);
Console.WriteLine("Count of Items in the Queue after Dequeue: " + CustQueue.Count);
Console.WriteLine("----------------------------------------------------------------");
} while (CustQueue.Count != 0);
public static void Main(string[] args)
Table<int> myInts = new Table<int>();
myInts.Changed += CollectionChanged;
QueueDemo ResurantWithCustomersList;
ResurantWithCustomersList = new QueueDemo();
ResurantWithCustomersList.QueueCustomers();
private static void CollectionChanged(object sender, StackEventArgs item)
Console.WriteLine("{0} {1}", item.eventChange, item.eventItem);
public delegate void EventDelegate(object sender, StackEventArgs eventData);
public event EventDelegate Changed;
private List<T> _list = new List<T>();
_list.Insert(_list.Count, item);
Changed(this, new StackEventArgs(item, "Push"));
T item = _list[_list.Count - 1];
_list.RemoveAt(_list.Count - 1);
Changed(this, new StackEventArgs(item, "Pop"));
public class StackEventArgs : EventArgs
public object eventItem { get; set; }
public string eventChange { get; set; }
public StackEventArgs(object item, string change)