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
*/