网上查资料,说foreach 不能改动迭代变量,仅仅能訪问迭代变量。自己理解也不是非常深,通过几个代码进行验证,发现foreach的使用方法还有点特别

验证方法:

1. 迭代变量 为int

int[] argint = { 12,12,12,12,12};

foreach (int item in argint)

{

item = 100;

}

结果:编译不通过,提示item为迭代变量,无法为它赋值;

2. 迭代变量为struct

public struct MyStruct

{

public string Name { get; set; }

}

MyStruct[] array = new MyStruct[] { new MyStruct { Name = "1" }, new MyStruct { Name = "2" } };

foreach (MyStruct item in array)

{

item.Name= “test”;

}

结果:编译不通过,提示item为迭代变量,无法改动其成员;

3. 迭代变量为类

IList<Student> list = db.Students.ToList();

foreach (Student item in list)

{

item.address = "xxxxxx";

item.age = 100;

item.id = 1000;

item.name = "xxxxx";

item.sex = 1;

}

结果:编译通过,执行后发现,item的属性都发生了改变。

总结:对于迭代变量为类的情况,foreach在迭代过程中,能够改动迭代变量的属性。

C# foreach 有用方法具体解释的更多相关文章

  1. 关于Parallel.For/Foreach并行方法中的localInit, body, localFinally使用

    对集合成员的操作往往可以通过并行来提高效率,.NET Parallel类提供了简单的方法来帮助我们实现这种并行,比如Paralle.For/ForEach/Invoke方法. 其中,For/ForEa ...

  2. Js apply 方法 具体解释

    Js apply方法具体解释 我在一開始看到javascript的函数apply和call时,很的模糊,看也看不懂,近期在网上看到一些文章对apply方法和call的一些演示样例,总算是看的有点眉目了 ...

  3. Format类及其子类功能和使用方法具体解释

    Format类及其子类功能和使用方法具体解释 1.   Format类结构: ·        java.lang.Object ·        java.text.Format ·         ...

  4. hbase-0.94安装方法具体解释

    先决条件:     1)java环境,须要安装java1.6以上版本号     2)hadoop环境.因为HBase架构是基于其它文件存储系统的,因此在分布式模式下安装Hadoop是必须的,可是,假设 ...

  5. ZooKeeper安装方法具体解释

    ZooKeeper安装方式分为两种,一种为单机模式.一个为集群模式,集群模式须要事先正确配置hadoop集群,安装方法參考hadoop-1.2.1安装方法具体解释 单机模式安装: 1.上传并解压zoo ...

  6. 模式识别 - libsvm的函数调用方法 具体解释

    libsvm的函数调用方法 具体解释 本文地址: http://blog.csdn.net/caroline_wendy/article/details/26261173 须要载入(load)SVM的 ...

  7. const 使用方法具体解释

    const使用方法具体解释 面向对象是C++的重要特性.  可是c++在c的基础上新添加的几点优化也是非常耀眼的 就const直接能够代替c中的#define 下面几点非常重要,学不好后果也也非常严重 ...

  8. hive-0.11.0安装方法具体解释

    先决条件:     1)java环境,须要安装java1.6以上版本号     2)hadoop环境,Hadoop-1.2.1的安装方法參考hadoop-1.2.1安装方法具体解释 本文採用的hado ...

  9. 第44篇-为native方法设置解释执行入口

    对于Java中的native方法来说,实际上调用的是C/C++实现的本地函数,由于可能会在Java解释执行过程中调用native方法,或在本地函数的实现过程中调用Java方法,所以当两者相互调用时,必 ...

随机推荐

  1. HDOJ 5000 Clone

    所有的属性,以满足一定的条件,是,财产和等于sum/2结果最大. Clone Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536 ...

  2. 使用mysqlbinlog工具的基础上及时恢复数据的位置或点

    使用mysqlbinlog工具的基础上及时恢复的位置或点 MySQL备份一般采取完全备份的形式加日志备份.让我们运行一个完整备份,每天.每小时运行二进制日志备份. 这样在MySQL Server故障后 ...

  3. python学习——编码

    为了将各种不同的语言都包括在同一的字符集中,满足国际间的信息交流国际上制定了UNICODE字符集. 通过使用UNICODE字符集能够满足跨语言的文字处理,有效的避免乱码产生. 用法:在脚本中添加下面代 ...

  4. cocos2d-x—使用shader使图片背景透明

    这里用shader处理了像素,使黑色背景透明,直接上代码 ShaderSprite.h [cpp] view plaincopyprint? #ifndef __TestShader__ShaderS ...

  5. Servlet上传文件

    Servlet上传文件 1.准备工作 (1)利用FileUpload组件上传文件,须要到apache上下载commons-fileupload-1.3.1.jar 下载地址:http://common ...

  6. Tri_integral Summer Training 5 总结

    比赛 题目 B D E G H I J 这是泰国的一场区域赛,除了C题英语非常抽以外,其余题目还不算难读. 一开场就发现了三道很水的题目,0:21:34就把三道题给过了,都是1A,赞Moor的手速. ...

  7. Spring : 征服数据库 (两)

    本节介绍Spring和ORM集成框架.尽管Hibernate在开源ORM 社区很受欢迎.但是,本文将MyBatis案例解说.也MyBatis和Hibernate好坏是没有意义的,主要看实际需求,有兴趣 ...

  8. 有意练习--Rails RESTful(一)

    书要反复提及<哪里有天才>在说,大多数所谓的天才是通过反复刻意练习获得. 当你的练习时间达到10000几个小时后,.你将成为该领域的专家. 近期在学习rails怎样实现RESTful We ...

  9. BP简单的理解神经网络

    先用3类样本训练,在測试.. 刚開始学习的人有错的 地方,,请大家多多指导.. 一些好的博客: http://blog.csdn.net/starxu85/article/details/314353 ...

  10. JSON-C结构简介、使用

    官方站点介绍http://www.json.org JSON (JavaScript Object Notation) is a lightweight data-interchange format ...