Example #1
0
        static void Main(string[] args)
        {
            int million = 20000; // this is not 2 million because dynamic list implementation (casting from object to int) was too slow

            int[]       array       = new int[million];
            ArrayList   arrayList   = new ArrayList();
            List <int>  list        = new List <int>();
            DynamicList dynamicList = new DynamicList();

            Random rand = new Random();
            int    num  = 0;
            int    sum  = 0;

            for (int i = 0; i < million; i++)
            {
                num      = rand.Next(10);
                array[i] = num;
                num      = rand.Next(10);
                arrayList.Add(num);
                num = rand.Next(10);
                list.Add(num);
                num = rand.Next(10);
                dynamicList.Add(num);
            }
            var sw = Stopwatch.StartNew();

            foreach (int item in array)
            {
                sum += item;
            }
            sw.Stop();
            TimeSpan time = sw.Elapsed;

            Console.WriteLine("ARRAY: Sum is {0} and time span is {1} milliseconds", sum, time.TotalMilliseconds);
            sum = 0;

            sw = Stopwatch.StartNew();
            foreach (int item in arrayList)
            {
                sum += item;
            }
            sw.Stop();
            time = sw.Elapsed;
            Console.WriteLine("ARRAYLIST: Sum is {0} and time span is {1} milliseconds", sum, time.TotalMilliseconds);
            sum = 0;

            sw = Stopwatch.StartNew();
            for (int i = 0; i < dynamicList.Count; i++)
            {
                sum += dynamicList.GetAsInt(i);
            }
            sw.Stop();
            time = sw.Elapsed;
            Console.WriteLine("DYNAMICLIST: Sum is {0} and time span is {1} milliseconds", sum, time.TotalMilliseconds);
            sum = 0;

            sw = Stopwatch.StartNew();
            foreach (int item in list)
            {
                sum += item;
            }
            sw.Stop();
            time = sw.Elapsed;
            Console.WriteLine("LIST: Sum is {0} and time span is {1} milliseconds", sum, time.TotalMilliseconds);

            Console.WriteLine();

            sw = Stopwatch.StartNew();
            for (int i = 0; i < 5; i++)
            {
                arrayList.IndexOf(rand.Next(10));
            }
            sw.Stop();
            time = sw.Elapsed;
            Console.WriteLine("ARRAYLIST: time span for search is {0} milliseconds", time.TotalMilliseconds);

            sw = Stopwatch.StartNew();
            for (int i = 0; i < 5; i++)
            {
                list.IndexOf(rand.Next(10));
            }
            sw.Stop();
            time = sw.Elapsed;
            Console.WriteLine("LIST: time span for search is {0} milliseconds", time.TotalMilliseconds);

            sw = Stopwatch.StartNew();
            for (int i = 0; i < 5; i++)
            {
                dynamicList.IndexOf(rand.Next(10));
            }
            sw.Stop();
            time = sw.Elapsed;
            Console.WriteLine("DYNAMICLIST: time span for search is {0} milliseconds", time.TotalMilliseconds);

            Console.ReadLine();
        }