static void Main(string[] args)
        {
            try
            {
                Frog Goshko   = new Frog("Goshko", 10, "male");
                Frog Dimitrur = new Frog("Dimitur", 6, "male");
                Frog Minka    = new Frog("Minka", 3, "female");

                Dog Rex     = new Dog("Rex", 1, "male");
                Dog Hunter  = new Dog("Hunter", 5, "male");
                Dog Blondie = new Dog("Blondie", 3, "female");

                Kitten Puxy  = new Kitten("Puxy", 2);
                Kitten Dazzy = new Kitten("Dazzy", 5);
                Kitten Tuffy = new Kitten("Tuffy", 4);

                TomCat Tom       = new TomCat("Tom", 4);
                TomCat Djeramaia = new TomCat("Djeramaia", 1);
                TomCat Virgin    = new TomCat("Virgin", 7);

                IList <Animal> animals = new List <Animal>
                {
                    Goshko, Dimitrur, Minka, Rex, Hunter, Blondie, Puxy, Dazzy, Tuffy, Tom, Djeramaia, Virgin
                };
                Goshko.ProduceSound();
                Rex.ProduceSound();
                Puxy.ProduceSound();
                Tom.ProduceSound();

                double catsAverageAge = animals
                                        .Where(animal => animal is Cat)
                                        .Average(cat => cat.Age);
                double dogsAverageAge = animals
                                        .Where(animal => animal is Dog)
                                        .Average(dog => dog.Age);

                double frogsAverageAge = animals
                                         .Where(animal => animal is Frog)
                                         .Average(frog => frog.Age);

                Console.WriteLine("Frogs average age is: {0:F2}", frogsAverageAge);
                Console.WriteLine("Dogs average age is: {0:F2}", dogsAverageAge);
                Console.WriteLine("Cats average age is: {0:F2}", catsAverageAge);
            }
            catch (ArgumentOutOfRangeException ae)
            {
                Console.WriteLine(ae.Message);
            }
            catch (ArgumentNullException ae)
            {
                Console.WriteLine(ae.Message);
            }
            catch (ArgumentException ae)
            {
                Console.WriteLine(ae.Message);
            }
        }
    static void Main()
    {
        Console.ForegroundColor = ConsoleColor.Green;
        Console.WriteLine("Test The Animals...");
        Console.ResetColor();
        Console.WriteLine();

        TomCat tomy = new TomCat("Tom", 3);
        Console.WriteLine("TomCat - " + tomy);
        tomy.ProduceSound();

        Console.WriteLine();

        Dog rex = new Dog("Rex", 5, Gender.Male);
        Console.WriteLine("Dog - " + rex);
        rex.ProduceSound();

        Console.WriteLine();

        Frog flip = new Frog("Flip", 1, Gender.Male);
        Console.WriteLine("Frog - " + flip);
        flip.ProduceSound();

        Console.WriteLine();

        Console.ForegroundColor = ConsoleColor.Green;
        Console.WriteLine("Average Age...");
        Console.ResetColor();
        Console.WriteLine();

        List<Cat> listOfCats = new List<Cat>();
        listOfCats.Add(new Cat("Joney", 5, Gender.Male));
        listOfCats.Add(new Cat("Mike", 1, Gender.Male));
        listOfCats.Add(new Cat("Simi", 5, Gender.Female));

        double catsAverageAge = listOfCats.Average(x => x.Age);
        Console.WriteLine("List Of Cats Average Age: {0}", catsAverageAge);

        List<Dog> listOfDogs = new List<Dog>();
        listOfDogs.Add(new Dog("Sharko", 3, Gender.Female));
        listOfDogs.Add(new Dog("Foxy", 1, Gender.Female));
        listOfDogs.Add(new Dog("Tommy", 5, Gender.Male));

        double dogsAverageAge = listOfDogs.Average(x => x.Age);
        Console.WriteLine("List Of Dogs Average Age: {0}", dogsAverageAge);

        Console.WriteLine();
    }