static void Main(string[] args)
{#region 三种方式循环执行效率测试List intList = new List();for (int i = 0; i < 100000000; i++)
{
intList.Add(i);
}#region for循环执行时间测试Stopwatch sw_1= newStopwatch();stringexcuteTime_1;int sum1 = 0;
sw_1.Start();for (int i = 0; i < intList.Count; i++)
{
sum1+=intList[i];
}
sw_1.Stop();
excuteTime_1=sw_1.ElapsedMilliseconds.ToString();#endregion
#region foreach循环执行时间测试Stopwatch sw_2= newStopwatch();int sum2 = 0;stringexcuteTime_2;
sw_2.Start();foreach (var item inintList)
{
sum2+=item;
}
sw_2.Stop();
excuteTime_2=sw_2.ElapsedMilliseconds.ToString();#endregion
#region enumerator.MoveNext循环执行时间Stopwatch sw_3= newStopwatch();stringexcuteTime_3;int sum3 = 0;//using (IEnumerator enumerator = intList.GetEnumerator())//1060//{
using (var enumerator = intList.GetEnumerator())//630
{//IEnumerator enumerator = intList.GetEnumerator();//1631//var enumerator = intList.GetEnumerator();//976
sw_3.Start();while(enumerator.MoveNext())
{
sum3+=enumerator.Current;
}
sw_3.Stop();
excuteTime_3=sw_3.ElapsedMilliseconds.ToString();
}#endregionConsole.WriteLine("for循环执行时间:" +excuteTime_1);
Console.WriteLine("foreach循环执行时间:" +excuteTime_2);
Console.WriteLine("movenext循环执行时间:" +excuteTime_3);/** 1)、通过以上对for循环、foreach循环和Enumerator.MoveNext()方式循环的测试,显示执行效率由高到低依次为:MoveNext>foreach>for。
* 2)、上面的结论前提是在获取IEnumerator时,用弱类型var,而不是强类型IEnumrator);
* 3)、如果变量用强类型,MoveNext的效率显著下降,比foreach低,甚至比for循环效率还低。*/
#endregion
#region Queue队列测试QueueClass.QueueFun_1();#endregionQueueClass queueClass= newQueueClass();
Console.ReadKey();
}