static void Main(string[] args) { int yourChoice; bool checkInput = false; IAnimal newAnimal; int ageOfAnimal; IAnimal[] animalList = new IAnimal[0]; IAnimal[] terrestrialAnimals = new IAnimal[0]; IAnimal[] marineAnimals = new IAnimal[0]; while (true) { Menu(); do { Console.Write("Please select one opition from above: "); checkInput = int.TryParse(Console.ReadLine(), out yourChoice); } while (!checkInput || yourChoice <= 0 || yourChoice > 8); switch (yourChoice) { case 1: newAnimal = new Crocodile(inputInformation(out ageOfAnimal), ageOfAnimal); AddAnimalToList(newAnimal, ref animalList); AddAnimalToList(newAnimal, ref terrestrialAnimals); AddAnimalToList(newAnimal, ref marineAnimals); break; case 2: newAnimal = new Cat(inputInformation(out ageOfAnimal), ageOfAnimal); AddAnimalToList(newAnimal, ref animalList); AddAnimalToList(newAnimal, ref terrestrialAnimals); break; case 3: newAnimal = new Fish(inputInformation(out ageOfAnimal), ageOfAnimal); AddAnimalToList(newAnimal, ref animalList); AddAnimalToList(newAnimal, ref marineAnimals); break; case 4: for (int i = 0; i < terrestrialAnimals.Length; i++) { Console.WriteLine(terrestrialAnimals[i].ToString()); } break; case 5: for (int i = 0; i < marineAnimals.Length; i++) { Console.WriteLine(marineAnimals[i].ToString()); } break; case 6: for (int i = 0; i < animalList.Length; i++) { Console.WriteLine(animalList[i].ToString()); } break; case 7: int idToRemove; do { Console.Write("Please enter id of animal you want to remove: "); checkInput = int.TryParse(Console.ReadLine(), out idToRemove); } while (!checkInput || idToRemove <= 0); DeleteAnimal(idToRemove, ref animalList); break; case 8: Environment.Exit(0); break; } } }