专业的编程技术博客社区

网站首页 > 博客文章 正文

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

baijin 2024-12-26 12:27:03 博客文章 3 ℃ 0 评论

一:语句及表示方法

for语句:

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

foreach语句:

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

理解

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

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

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

代码如下?:

?结果:

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

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

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

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

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

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

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

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

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

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表