LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

C#中的for和foreach的探究与学习

admin
2023年10月7日 10:0 本文热度 388

一:语句及表示方法

for语句:

for(初始表达式;条件表达式;增量表达式)
{
     
//循环体
}

foreach语句:

foreach(数据类型 变量 in 数组或集合)
{
     
//循环体
}

二.理解

1.从程序逻辑上理解,foreach是通过指针偏移实现的(最初在-1位置,每循环一次,指针就偏移一个单位),而for循环是通过当前索引相对零索引的偏移量(通过首地址和地址偏移量)计算实际访问地址实现的;

2.以上我们也可以看出,for更具有判断逻辑性,foreach只是循环访问。当然你可以你再循环体引入业务逻辑。

从以上总结我们看出,两者各有优点,其实我觉得各自的优点,要在不同的程序中我们去考量一些要素,同时我们具体问题具体分析。那我们具体看下一下代码:我们以100万个数据相加累和,作进一步测试:

代码如下:

三.结果:

四.从问题出发,更要从实际出发

我们对for语句和foreach语句进行统计,实际此程序问题很多:

问题0:其中变量的定义对测试影响大不大。

问题1:DateTime.Now时间的精确性影响大不大。

问题2for语句和foreach语句的位置顺序问题会不会影响。

问题3:相加累和方法测试,对for语句和foreach语句测试是否公平。

问题4:for语句和foreach语句,装载数据方式,调用数据顺序具有很大的研究价值。

问题5:for语句和foreach语句运行机制原理,对于两者的PK是否公平。

以上几点经过长久的测试,影响比较大的。当我们试图去探究一些问题,请大家更注重他们的运行机制,当然也要更注重他们在我们实际程序中,不能一直去研究性能,而忽略他们存在机制。


该文章在 2023/10/7 10:00:00 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2024 ClickSun All Rights Reserved