static void Main(string[] args) { bool keepGoing = true; int listSize = 0; Collection listOfNumbers = null; NewCollection listOfStrings = null; Console.Clear(); Console.Write("How many elements do you want to generate: "); string userInput = Console.ReadLine(); if (!int.TryParse(userInput, out listSize)) { listSize = 0; } if (listSize <= 0) { keepGoing = false; } else { listOfNumbers = new Collection(listSize); } while (keepGoing) { Console.WriteLine("\nChoose from the following options:\n"); Console.WriteLine ("\t1. Get the index of an item in the list."); Console.WriteLine("\t2. See if an item is in the list."); Console.WriteLine("\t3. Display the entire list."); Console.WriteLine("\t4. Sort the entire list."); Console.WriteLine("\t5. Generate a list of strings."); Console.WriteLine("\t6. Display the list of strings."); Console.WriteLine("\t7. Sort the list of strings."); Console.WriteLine("\tE. Exit."); Console.Write("\nYour choice: "); string userOption = Console.ReadLine(); userOption = userOption.ToUpper(); int targetNumber = -1; switch (userOption) { case "1": targetNumber = GetTargetNumber(); if (targetNumber > 0) { int index = listOfNumbers.IndexOf(targetNumber); if (index >= 0) { Console.WriteLine ("\n{0} is found at index {1}.\n", targetNumber, index); } else { Console.WriteLine ("\n{0} is not in the list.\n", targetNumber); } } break; case "2": targetNumber = GetTargetNumber(); if (targetNumber > 0) { if (listOfNumbers.Found(targetNumber)) { Console.WriteLine("\n{0} is in the list.\n", targetNumber); } else { Console.WriteLine ("\n{0} is NOT in the list.\n", targetNumber); } } break; case "3": Console.Write("\nThe list: {0}\n", listOfNumbers.ToString()); break; case "4": //ISortable unsortedNumberList = // (ISortable)listOfNumbers; //// By doing the following, the only methods that are //// accessible via unsortedNumberList are those that //// are found in ISortable and System.Object. //ISortable unsortedNumberList = // listOfNumbers as ISortable; //if (null != unsortedNumberList) //{ // SortTheList(unsortedNumberList); SortTheList(listOfNumbers); Console.WriteLine ("\nThe list of numbers has been sorted.\n"); //} //else //{ // Console.WriteLine("The current collection " + // "does not support ISortable!"); //} break; case "5": listOfStrings = new NewCollection(listSize); break; case "6": Console.Write("\nThe list: \n{0}", listOfStrings.ToString()); break; case "7": //ISortable unsortedStringList = // (ISortable)listOfStrings; //// By doing the following, the only methods that are //// accessible via unsortedStringList are those that //// are found in ISortable and System.Object. //ISortable unsortedStringList = // listOfStrings as ISortable; //if (null != unsortedStringList) //{ // SortTheList(unsortedStringList); SortTheList(listOfStrings); Console.WriteLine ("\nThe list of strings has been sorted.\n"); //} //else //{ // Console.WriteLine("The current collection " + // "does not support ISortable!"); //} break; case "E": keepGoing = false; break; default: Console.WriteLine ("\nYour option {0} is not valid. Try again!\n", userOption); break; } } Console.Write("\n\nPress <ENTER> to end: "); Console.ReadLine(); }
static void Main(string[] args) { bool keepGoing = true; int listSize = 0; Collection listOfNumbers = null; Console.Clear(); Console.Write("How many numbers do you want to generate: "); string userInput = Console.ReadLine(); if (!int.TryParse(userInput, out listSize)) { listSize = 0; } if (listSize <= 0) { keepGoing = false; } else { listOfNumbers = new Collection(listSize); } while (keepGoing) { Console.WriteLine("\nChoose from the following options:\n"); Console.WriteLine ("\t1. Get the index of an item in the list."); Console.WriteLine("\t2. See if an item is in the list."); Console.WriteLine("\t3. Display the entire list."); Console.WriteLine("\tE. Exit."); Console.Write("\nYour choice: "); string userOption = Console.ReadLine(); userOption = userOption.ToUpper(); int targetNumber = -1; switch (userOption) { case "1": targetNumber = GetTargetNumber(); Console.WriteLine("NOT IMPLEMENTED!"); break; case "2": targetNumber = GetTargetNumber(); Console.WriteLine("NOT IMPLEMENTED!"); break; case "3": Console.Write("\nThe list: {0}\n", listOfNumbers.ToString()); break; case "E": keepGoing = false; break; default: Console.WriteLine ("\nYour option {0} is not valid. Try again!\n", userOption); break; } } Console.Write("\n\nPress <ENTER> to end: "); Console.ReadLine(); }
static void Main(string[] args) { bool keepGoing = true; int listSize = 0; Collection listOfNumbers = null; Console.Clear(); Console.Write("How many numbers do you want to generate: "); string userInput = Console.ReadLine(); if (!int.TryParse(userInput, out listSize)) { listSize = 0; } if (listSize <= 0) { keepGoing = false; } else { listOfNumbers = new Collection(listSize); } while (keepGoing) { Console.WriteLine("\nChoose from the following options:\n"); Console.WriteLine ("\t1. Get the index of an item in the list."); Console.WriteLine("\t2. See if an item is in the list."); Console.WriteLine("\t3. Display the entire list."); Console.WriteLine("\t4. Sort the entire list."); Console.WriteLine("\tE. Exit."); Console.Write("\nYour choice: "); string userOption = Console.ReadLine(); userOption = userOption.ToUpper(); int targetNumber = -1; switch (userOption) { case "1": targetNumber = GetTargetNumber(); if (targetNumber > 0) { int index = listOfNumbers.IndexOf(targetNumber); if (index >= 0) { Console.WriteLine ("\n{0} is found at index {1}.\n", targetNumber, index); } else { Console.WriteLine ("\n{0} is not in the list.\n", targetNumber); } } break; case "2": targetNumber = GetTargetNumber(); if (targetNumber > 0) { if (listOfNumbers.Found(targetNumber)) { Console.WriteLine("\n{0} is in the list.\n", targetNumber); } else { Console.WriteLine ("\n{0} is NOT in the list.\n", targetNumber); } } break; case "3": Console.Write("\nThe list: {0}\n", listOfNumbers.ToString()); break; case "4": // You can access the implicit implementation of an interface // method through the reference to the object. listOfNumbers.Sort(); // OR // You can access the implicit implementation of an interface // method by implicitly converting the object reference to // an interface reference and use the interface reference. // You will see how this will becomeadvantageous later on // using polymorphism. //ISortable isort = listOfNumbers; //isort.Sort(); Console.WriteLine("\nThe list has been sorted.\n"); break; case "E": keepGoing = false; break; default: Console.WriteLine ("\nYour option {0} is not valid. Try again!\n", userOption); break; } } Console.Write("\n\nPress <ENTER> to end: "); Console.ReadLine(); }