public static void Main()
        {
            Dictionary <string, Dog>   dogs   = new Dictionary <string, Dog>();
            Dictionary <string, Cat>   cats   = new Dictionary <string, Cat>();
            Dictionary <string, Snake> snakes = new Dictionary <string, Snake>();

            string inputLine = Console.ReadLine();

            while (inputLine != "I'm your Huckleberry")
            {
                string[] tokens = inputLine.Split(' ');

                if (tokens.Length > 2)
                {
                    string type      = tokens[0];
                    string name      = tokens[1];
                    int    age       = int.Parse(tokens[2]);
                    int    parameter = int.Parse(tokens[3]);

                    switch (type)
                    {
                    case "Dog":
                        Dog newDog = new Dog();
                        newDog.Name         = name;
                        newDog.Age          = age;
                        newDog.NumberOfLegs = parameter;

                        dogs.Add(newDog.Name, newDog);
                        break;

                    case "Cat":
                        Cat newCat = new Cat();
                        newCat.Name = name;
                        newCat.Age  = age;
                        newCat.IntelligenceQuotient = parameter;

                        cats.Add(newCat.Name, newCat);
                        break;

                    case "Snake":
                        Snake newSnake = new Snake();
                        newSnake.Name = name;
                        newSnake.Age  = age;
                        newSnake.CrueltyCoefficient = parameter;

                        snakes.Add(newSnake.Name, newSnake);
                        break;
                    }
                }
                else
                {
                    string animalName = tokens[1];

                    if (dogs.ContainsKey(animalName))
                    {
                        dogs[animalName].ProduceSound();
                    }
                    else if (cats.ContainsKey(animalName))
                    {
                        cats[animalName].ProduceSound();
                    }
                    else if (snakes.ContainsKey(animalName))
                    {
                        snakes[animalName].ProduceSound();
                    }
                }

                inputLine = Console.ReadLine();
            }

            foreach (var dog in dogs.Values)
            {
                Console.WriteLine(
                    $"Dog: {dog.Name}, Age: {dog.Age}, Number Of Legs: {dog.NumberOfLegs}");
            }

            foreach (var cat in cats.Values)
            {
                Console.WriteLine(
                    $"Cat: {cat.Name}, Age: {cat.Age}, IQ: {cat.IntelligenceQuotient}");
            }

            foreach (var snake in snakes.Values)
            {
                Console.WriteLine(
                    $"Snake: {snake.Name}, Age: {snake.Age}, Cruelty: {snake.CrueltyCoefficient}");
            }
        }
Example #2
0
        public static void Main()
        {
            var dogs   = new List <Dog>();
            var cats   = new List <Cat>();
            var snakes = new List <Snake>();

            var entered = Console.ReadLine();

            while (entered != "I'm your Huckleberry")
            {
                var parameters = entered.Split(" ".ToCharArray(), StringSplitOptions.RemoveEmptyEntries).ToList();

                var kind     = parameters[0];
                var name     = parameters[1];
                var age      = string.Empty;
                var property = string.Empty;;

                if (parameters.Count > 2)
                {
                    age      = parameters[2];
                    property = parameters[3];
                }

                if (kind == "Dog")
                {
                    var newDog = new Dog();
                    {
                        newDog.Class = kind;
                        newDog.Name  = name;
                        newDog.Age   = age;
                        newDog.Legs  = property;
                    }
                    dogs.Add(newDog);
                }
                else if (kind == "Cat")
                {
                    var newCat = new Cat();
                    {
                        newCat.Class = kind;
                        newCat.Name  = name;
                        newCat.Age   = age;
                        newCat.IQ    = property;
                    }
                    cats.Add(newCat);
                }
                else if (kind == "Snake")
                {
                    var newSnake = new Snake();
                    {
                        newSnake.Class   = kind;
                        newSnake.Name    = name;
                        newSnake.Age     = age;
                        newSnake.Cruelty = property;
                    }
                    snakes.Add(newSnake);
                }
                else
                {
                    foreach (var item in dogs)
                    {
                        if (item.Name == name)
                        {
                            Console.WriteLine(Dog.ProduceSound());
                        }
                    }
                    foreach (var item in cats)
                    {
                        if (item.Name == name)
                        {
                            Console.WriteLine(Cat.ProduceSound());
                        }
                    }
                    foreach (var item in snakes)
                    {
                        if (item.Name == name)
                        {
                            Console.WriteLine(Snake.ProduceSound());
                        }
                    }
                }

                entered = Console.ReadLine();
            }

            foreach (var item in dogs)
            {
                Console.WriteLine($"{item.Class}: {item.Name}, Age: {item.Age}, Number Of Legs: {item.Legs}");
            }
            foreach (var item in cats)
            {
                Console.WriteLine($"{item.Class}: {item.Name}, Age: {item.Age}, IQ: {item.IQ}");
            }
            foreach (var item in snakes)
            {
                Console.WriteLine($"{item.Class}: {item.Name}, Age: {item.Age}, Cruelty: {item.Cruelty}");
            }
        }