看个例子,就可以看出原因
执行结果如下
进入For循环
添加一次函数
0
添加一次函数
1
添加一次函数
进入Foreach循环
添加一次函数
1
2
结束
要熄灯了,虽然程序小有问题,但基本能看出for一共执行了三次函数list而foreach只执行了必要的一次,由此可见,foreach效率比for要高上许多
public static void Main(string[] args)
{
Console.WriteLine("进入For循环");
for(int i=0;i<List().Count;i++){
Console.WriteLine(i.ToString());
}
Console.WriteLine("进入Foreach循环");
foreach(int i in List()){
Console.WriteLine(i.ToString());
}
Console.WriteLine("结束");
Console.ReadKey(true);
}
static List<int> List(){
List<int> l = new List<int>();
l.Add(1);
l.Add(2);
Console.WriteLine("添加一次函数");
return l;
}
{
Console.WriteLine("进入For循环");
for(int i=0;i<List().Count;i++){
Console.WriteLine(i.ToString());
}
Console.WriteLine("进入Foreach循环");
foreach(int i in List()){
Console.WriteLine(i.ToString());
}
Console.WriteLine("结束");
Console.ReadKey(true);
}
static List<int> List(){
List<int> l = new List<int>();
l.Add(1);
l.Add(2);
Console.WriteLine("添加一次函数");
return l;
}
执行结果如下
进入For循环
添加一次函数
0
添加一次函数
1
添加一次函数
进入Foreach循环
添加一次函数
1
2
结束
要熄灯了,虽然程序小有问题,但基本能看出for一共执行了三次函数list而foreach只执行了必要的一次,由此可见,foreach效率比for要高上许多
本文通过一个简单的C#示例程序,展示了使用for循环与foreach循环遍历列表时的不同表现。实验结果显示,在遍历过程中,foreach循环仅执行了一次列表获取操作,而for循环则在每次迭代时都调用了列表的Count属性,导致了额外的性能开销。
2247

被折叠的 条评论
为什么被折叠?



