static void Main(string[] args)
        {
            List <PerformanceTest> SearchMethod = new List <PerformanceTest>();

            SearchMethod.Add(new QueryLinqWhere());
            SearchMethod.Add(new QueryLinqContain());
            SearchMethod.Add(new QueryLinqContainParallel());
            SearchMethod.Add(new QueryLinqJoin());


            List <Dado> original = new List <Dado>();
            int         total    = 100000;

            Console.WriteLine("Generating Data");
            for (int i = 0; i < total; i++)
            {
                original.Add(new Dado()
                {
                    ID = i, PayLoad = "teste"
                });
            }

            Random rnd = new Random();
            List <List <Int32> > queryList = new List <List <int> >();

            Console.WriteLine("Generating IDs for Query");
            for (int i = 0; i < 10; i++)
            {
                queryList.Add(new List <int>());
                for (int j = 0; j < (total / 100) * (i + 1); j++)
                {
                    queryList[i].Add(rnd.Next(total));
                }
                queryList[i] = queryList[i].Distinct().ToList();
            }

            Console.WriteLine("Setup Method");
            SearchMethod.ForEach(x =>
            {
                x.Setup(original.ToList());
            });

            Console.WriteLine("Performing Tests");
            SearchMethod.ForEach(x =>
            {
                Console.WriteLine($"Performing: {x.ToString().Split('+')[1]}");
                queryList.ForEach(z =>
                {
                    x.PerformQuery(z);
                });
            });

            PerformanceTest.PrintCSV(SearchMethod);

            Console.Write("Enter para continuar...");
            Console.ReadLine();
        }