static void Main(string[] args) { //Declare the list List<Contact> contactList = new List<Contact>(); //Main Driver char menuItem; Console.WriteLine("Contact List\n"); menuItem = GetMenuItem(); while (menuItem != 'Q') { ProcessMenuItem(menuItem, contactList); menuItem = GetMenuItem(); } Console.WriteLine("\nThank you, goodbye"); Console.ReadLine(); } //Returns either a 'C', 'R', 'U', 'D', 'L', or 'X' to the caller static char GetMenuItem() { char menuItem; DisplayMenu(); menuItem = char.ToUpper(IOConsole.GetChar("\nPlease pick an item: ")); while (menuItem != 'C' && menuItem != 'R' && menuItem != 'Q' && menuItem != 'U' && menuItem != 'D' && menuItem != 'S' && menuItem != 'L' && menuItem != 'F' && menuItem != 'P' && menuItem != 'T') { Console.WriteLine("\nError - Invalid menu item"); DisplayMenu(); menuItem = char.ToUpper(IOConsole.GetChar("\nEnter option or M for menu:")); } return menuItem; } static void DisplayMenu() { Console.WriteLine("C-> Create Contacts"); Console.WriteLine("R-> Remove Contacts"); Console.WriteLine("U-> Update Contacts"); Console.WriteLine("D -> Load data from file"); Console.WriteLine("S-> Save data to file"); Console.WriteLine("L-> View sorted by last name"); Console.WriteLine("F-> View sorted by first name"); Console.WriteLine("P-> View by partial name search"); Console.WriteLine("T-> View by contact type"); Console.WriteLine("Q-> Quit"); } //Routes to the appropriate process routine based on the user menu choice static void ProcessMenuItem(Char menuItem, List<Contact> contactList) { switch (menuItem) { case 'C': createContact(); break; case 'R': removeContact(contactList); break; case 'U': updateContact(contactList); break; case 'D': LoadFromFile(); break; case 'S': saveToFile(); break; case 'L': sortByLastName(contactList); break; case 'F': sortByFirstName(contactList); break; case 'P': DisplayList(contactList); break; case 'T': sortByContactType(); break; case 'Q': break; } } //allows the user to remove a contact public static void removeContact(List<Contact> contactList) { for (int i = 0; i < contactList.Count; i++) if (i % 5 == 0) contactList.RemoveAt(i); }
var
This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)