为什么要用foreach来代替for

本文通过一个简单的C#示例程序,展示了使用for循环与foreach循环遍历列表时的不同表现。实验结果显示,在遍历过程中,foreach循环仅执行了一次列表获取操作,而for循环则在每次迭代时都调用了列表的Count属性,导致了额外的性能开销。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

看个例子,就可以看出原因

 
        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;
            
        }


执行结果如下

进入For循环
添加一次函数
0
添加一次函数
1
添加一次函数
进入Foreach循环
添加一次函数
1
2
结束


要熄灯了,虽然程序小有问题,但基本能看出for一共执行了三次函数list而foreach只执行了必要的一次,由此可见,foreach效率比for要高上许多
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值