为啥在foreach循环中不能修改值类型实例

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为啥在foreach循环中不能修改值类型实例相关的知识,希望对你有一定的参考价值。

参考技术A 其实简单需要循环 集合 其元素集合类型 string []a foreach(string s in a) //遍历 string 数组其单类型string dataset ds //遍历 dataset数组其单类型ds每行 foreach.

foreach用法

foreach用法:foreach (type identifier in expression) statement。

其中:

type:identifier 的类型。

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

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

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

扩展资料

php 4 引入了 foreach 结构,和 Perl 以及其他语言很像。这只是一种遍历数组简便方法。foreach 仅能用于数组,当试图将其用于其它数据类型或者一个未初始化的变量时会产生错误。有两种语法,第二种比较次要但却是第一种的有用的扩展。

foreach (array_expression as $value) statement。

第一种格式遍历给定的 array_expression 数组。每次循环中,当前单元的值被赋给 $value 并且数组内部的指针向前移一步(因此下一次循环中将会得到下一个单元)。

foreach (array_expression as $key => $value) statement。

第二种格式做同样的事,只除了当前单元的键名也会在每次循环中被赋给变量 $key。

自php 5 起,还可能遍历对象。注: 当 foreach 开始执行时,数组内部的指针会自动指向第一个单元。这意味着不需要在 foreach 循环之前调用 reset()。

注:除非数组是被引用,foreach 所操作的是指定数组的一个拷贝,而不是该数组本身。因此数组指针不会被 each() 结构改变,对返回的数组单元的修改也不会影响原数组。不过原数组的内部指针的确在处理数组的过程中向前移动了。假定 foreach 循环运行到结束,原数组的内部指针将指向数组的结尾。

参考技术A

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

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

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

循环体2

扩展资料:

类似的循环语句:for

编程中用于循环处理的语句。Java的for语句形式有两种:一种是和C语言中的for语句形式一样,另一种形式用于在集合和数组之中进行迭代。有时候把这种形式称为增强的for(enhanced for)语句,它可以使循环更加紧凑和容易阅读。

它的一般形式为: for(;;) 语句; 初始化总是一个赋值语句,它用来给循环控制变量赋初值;条件表达式是一个关系表达式,它决定什么时候退出循环;增量定义循环控制变量每循环一次后按什么方式变化。这三个部分之间用";"分开。

参考资料来源:百度百科-for

参考资料来源:百度百科-foreach

以上是关于为啥在foreach循环中不能修改值类型实例的主要内容,如果未能解决你的问题,请参考以下文章

foreach与for的区别

forin循环能修改集合值吗?

foreach和for的区别

Java中foreach为啥不能给数组赋值

for循环和迭代器Iterator

foreach用法