Who work faster CharEnumerator or foreach in C#

1 Answer

0 votes
using System;
using System.Diagnostics;

namespace ConsoleApplication_C_Sharp
{
    class Program
    {
        static void Main(string[] args)
        {
            var sw1 = Stopwatch.StartNew();

            for (int i = 0; i < 1000000; i++)
            {
                CharEnumeratorTest("c# programming");
            }
            sw1.Stop();

            var sw2 = Stopwatch.StartNew();
            for (int i = 0; i < 1000000; i++)
            {
                foreachTest("c# programming");
            }
            sw2.Stop();

            Console.WriteLine("CharEnumerator: " + sw1.Elapsed.TotalMilliseconds + " ms");
            Console.WriteLine("foreach: " + sw2.Elapsed.TotalMilliseconds + " ms");
        }

        static int CharEnumeratorTest(string val)
        {
            int result = 0;

            CharEnumerator e = val.GetEnumerator();
            while (e.MoveNext())
            {
                result += (int)e.Current;
            }
            return result;
        }

        static int foreachTest(string val)
        {
            int result = 0;

            foreach (char ch in val)
            {
                result += (int)ch;
            }
            return result;
        }
    }
}


/*
run:
     
CharEnumerator: 115.8744 ms
foreach: 75.9529 ms

*/

 



answered Dec 24, 2016 by avibootz

Related questions

1 answer 174 views
1 answer 222 views
222 views asked Dec 25, 2016 by avibootz
1 answer 201 views
201 views asked Dec 17, 2016 by avibootz
1 answer 205 views
2 answers 209 views
...