using System.Collections;
using System.Collections.ObjectModel;
using System.Collections.Generic;
using System.Collections.Specialized;
Queue<Customer> guestlist = new Queue<Customer>();
guestlist.Enqueue(new Customer("Sachin", "Sharma"));
guestlist.Enqueue(new Customer("Sunil", "Shukla"));
guestlist.Enqueue(new Customer("Atul", "Vashisht"));
guestlist.Enqueue(new Customer("Sumit", "Malhotra"));
guestlist.Enqueue(new Customer("Monu", "Sharma"));
int count = guestlist.Count();
for (int i = 0; i < count; i++)
cust = guestlist.Dequeue();
c.openevent += cust.GotTable;
c.openevent -= cust.GotTable;
Console.WriteLine("Everyone is full!");
public delegate void TableHandler(object source, TableEventArgs e);
public event TableHandler openevent;
public void OnTableOpen()
Console.WriteLine("Table is open");
openevent(this,new TableEventArgs());
public class TableEventArgs : EventArgs
public string FirstName { get; set; }
public string LastName { get; set; }
public enum Meals { none, appetizer, main, desert, done };
public Customer(string fname, string lname)
public void GotTable(object source, TableEventArgs e)
Console.WriteLine("{0} {1} got the table !", FirstName, LastName);
foreach (var enumvalue in Enum.GetNames(typeof(Customer.Meals)))
Console.WriteLine("{0} {1} is having {2}", this.FirstName, this.LastName, enumvalue);