Who work faster for loop or IndexOf in C#

1 Answer

0 votes
using System;
using System.Diagnostics;

namespace ConsoleApplication_C_Sharp
{
    class Program
    {
        public int Length { get; private set; }

        static void Main(string[] args)
        {
            string s = "c#:java:c++:php";

            var sw1 = Stopwatch.StartNew();
            for (int i = 0; i < 1000000; i++)
            {
                int count = 0;
                for (int j = 0; j < s.Length; j++)
                {
                    if (s[j] == ':')
                    {
                        count++;
                    }
                }
            }
            sw1.Stop();

            var sw2 = Stopwatch.StartNew();
            for (int i = 0; i < 1000000; i++)
            {
                int count = 0;
                int j = 0;
                while ((j = s.IndexOf(':', j)) != -1)
                {
                    j++;
                    count++;
                }
            }
            sw2.Stop();

            Console.WriteLine("for loop: " + sw1.Elapsed.TotalMilliseconds + " ms");
            Console.WriteLine("IndexOf in while loop: " + sw2.Elapsed.TotalMilliseconds + " ms");
        }
    }
}


/*
run:
     
for loop: 79.2941 ms
IndexOf in while loop: 35.2052 ms

*/

 



answered Dec 25, 2016 by avibootz

Related questions

1 answer 173 views
1 answer 192 views
1 answer 201 views
201 views asked Dec 17, 2016 by avibootz
2 answers 208 views
1 answer 169 views
...