//Search feature.  Could have avoided difficultly by adding "Invalid" to the talents array, but where is the fun in that.
 private static void SearchContestants(char inputChar, Contestant[] contestant)
 {
     int count = 0;
     char invalid = INVALID.ToCharArray()[0];
     for (int x = 0; x < talents.Length; ++x)
     {
         if (inputChar == talents[x].ToCharArray()[0] || inputChar == invalid)
         {
             count = 1;
             for (int y = 0; y < contestant.Length; ++y)
             {
                 if (inputChar == contestant[y].Talent)
                 {
                     Console.WriteLine("{0,4}{1,-32}{2}", count + ": ", contestant[y].Name, contestant[y].TalentDescription);
                     ++count;
                 }
             }
             break; //Prevents the loop from cycling once a result is found.
         }
     }
     if (count == 1)
     {
         Console.WriteLine("No Results found for talent code: {0}.", inputChar);
     }
 }
            static void Main(string[] args)
            {
                int thisYears, lastYears;
                string inputString;
                char outputTalent, controlChar;
                bool quitCompare, reenterCompare;
                Console.Write("Enter the number of contestants in this years competition >> ");  //Next section of code gets number of contestants.
                inputString = Console.ReadLine();
                while (!int.TryParse(inputString, out thisYears) || !ValidateGroup(thisYears))  //Validation made easy thanks to TryParse.
                {
                    Console.Write("Please enter a valid integer between {0} and {1} >> ", MIN, MAX);
                    inputString = Console.ReadLine();
                }
                Console.Write("Enter the number of contestants in last years competition >> ");
                inputString = Console.ReadLine();
                while (!int.TryParse(inputString, out lastYears) || !ValidateGroup(lastYears))
                {
                    Console.Write("Please enter a valid integer between {0} and {1} >> ", MIN, MAX);
                    inputString = Console.ReadLine();
                }

                Console.WriteLine(GetComparison(thisYears, lastYears));  //Generates comparision message.  GetComparision() does all the work.

                Console.WriteLine("\nIf a {0} entrance fee is charged, then the competition should generate {1} in revenue.  ", ENTRANCE_FEE.ToString("C"), GetRevenue(thisYears).ToString("C")); //Revenue statement.

                Contestant[] contestant = new Contestant[thisYears]; //This section of code gets the names and talents, and delivers them to Contestant class.
                for (int x = 0; x < thisYears; ++x)
                {
                    Console.Write("\nEnter the name of contestant number {0} >> ", x + 1);
                    contestant[x] = new Contestant();  //A new object for each new contestant.
                    contestant[x].Name = Console.ReadLine();
                    do
                    {
                        controlChar = '\0'; //Resetting controlChar for each run of the loop.
                        Console.Write("Enter {0}'s talent code >> ", contestant[x].Name);
                        while (!char.TryParse(Console.ReadLine(), out outputTalent))
                        {
                            Console.Write("Please enter a single character >> ");
                        }
                        if (!Contestant.ValidateCode(outputTalent))  //If the talent code is invalid, lets let the user know before proceeding.
                        {
                            Console.WriteLine(Contestant.GetValidationMsg());
                            Console.Write("\nType {0} to re-enter or press enter to continue >> ", REENTER);
                            char.TryParse(Console.ReadLine(), out controlChar);
                        }
                        reenterCompare = controlChar == REENTER || controlChar == Char.ToLower(REENTER);
                        if (!reenterCompare)
                        {
                            contestant[x].Talent = outputTalent;
                        }
                    } while (reenterCompare); //Loop allows for corrections to the talent code.
                }

                do  //Search contestants by way of SearchContestants().
                {
                    Console.Write("\nEnter a talent code to see users from that category or press {0} to quit >> ", QUIT);
                    while (!char.TryParse(Console.ReadLine(), out controlChar))
                    {
                        Console.Write("\nPlease enter a single character >> ");
                    }
                    quitCompare = controlChar == QUIT || controlChar == Char.ToLower(QUIT);
                    if (!Contestant.ValidateCode(controlChar) && controlChar != INVALID.ToCharArray()[0] && !quitCompare) //All these conditions must be met for the error msg to show.
                    {
                        Console.WriteLine("\n" + Contestant.GetValidationMsg());
                        continue;
                    }
                    else
                    {
                        SearchContestants(controlChar, contestant);
                    }
                } while (!quitCompare);
            }