foreach循环(foreach循环和for循环区别)

http://www.itjxue.com  2023-01-30 10:04  来源:未知  点击次数: 

c#入门教程(五)foreach 循环

while和for循环可以满足80%场景,但是对于没有下标索引的集合无法实现元素的遍历,比如字典表Dictionary。

这时需要使用foreach循环,不管是数组还是集合,有无下标索引都可以使用它来遍历元素。

案例1:

int [] array=new int[3]{1,2,3};

foreach(int e in array)

{

e+=1;

}

foreach括号内容解释:int 表示数组或集合元素的数据类型;

e是临时变量名,表示当前所枚举的元素;

in 是关键词表示来自哪个数组或集合,是固定写法;

array是我们定义的数组。

关于循环体的使用选择,当需要使用下标索引时可以选用for否则使用foreach,非集合或数组循环可使用while。

C#中的foreach循环怎么用?

foreach 语句为数组或对象集合中的每个元素重复一个嵌入语句组。foreach 语句用于循环访问集合以获取所需信息,但不应用于更改集合内容以避免产生不可预知的副作用。

能够应用的编程语言类别:Java、C# 、PHP、D语言(Phobos库)。

foreach语句是c#中新增的循环语句,他对于处理数组及集合等数据类型特别方便。

foreach语句的一般语法格式如下:

foreach(数据类型 标识符 in 表达式)

{

循环体

}。

此语句的形式如下:

foreach (type identifier in expression) statement

其中:

type

identifier 的类型。

identifier

表示集合元素的迭代变量。如果迭代变量为值类型,则无法修改的只读变量也是有效的。

expression

对象集合或数组表达式。集合元素的类型必须可以转换为 identifier 类型。请不要使用计算为 null 的表达式。

而应计算为实现 IEnumerable 的类型或声明 GetEnumerator 方法的类型。在后一种情况中,GetEnumerator 应该要么返回实现 IEnumerator 的类型,要么声明 IEnumerator 中定义的所有方法。

statement

要执行的嵌入语句。

事例:

int[]arr=newint[]{0,1,2,3,4};

foreach(int i in arr)

{

Console.Write(i);

}

C#中:foreach 针对引用类型地址的访问

如果当前方法中在访问当前引用类型的集合,在新调用的 方法中在修改当前集合的地址时,当前地址会依然存在,不符合C#中的对象的生命周期,一旦当前文件的引用地址被替换掉了,当前对象的空间就消失废弃了,但是,foreach(){

}会保留原先的集合的地址地址应该也是有生命周期的foreach 和for 就不一样!

c#中:foreach举例

using System;

class Number

{

static void Main()

{

int evenNum = 0, oddNum = 0;

//定义并初始化一个一维数组

int[] arr = new int[] { 13, 16, 15, 78, 26, 65, 39 };

foreach (intk in arr) //提取数组中的整数

{

if (k % 2 == 0) //判断是否为偶数

evenNum++;

else

oddNum++;

}

Console.WriteLine("偶数个数:{0} 奇数个数:{1}", evenNum, oddNum);

Console.ReadKey();

}

}

for循环与forEach循环的区别

for循环与forEach循环的区别:

1.写法不同:

2.关于中断循环

for循环是可以中断循环(利用break语句或return语句),但forEach不可以中断循环。

3.关于扩展js原生的Array类

使用for循环时,打印每个value值,并不会打印出来扩展js原生的Array类(譬如下图),但使用forEach循环,就可以打印出来。

4.关于循环中包含有异步语句

这条区别是我自己根据实践这么认为的,并不是书中标准语言,只可借鉴。

根据上图,可以看出for循环中包含异步语句时,初次遍历,进入到最里面的异步函数时,打印k,for循环已经循环完了,所以这个时候你打印的任何东西都是数组的最后一项。但是利用forEach循环,打印出来的就是数组中的每一项,不管异不异步。这个区别就是我这个需求中遇到的坑。以后记住了!!!!!!

(责任编辑:IT教学网)

更多

推荐广告特效文章