知识大全 C#中foreach基础使用方法

Posted 变量

篇首语:人生就像爬坡,要一步一步来。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 C#中foreach基础使用方法相关的知识,希望对你有一定的参考价值。

C#中foreach基础使用方法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  昨天做老师的网站作业 要对一些对象做添加修改删除处理 别的倒没什么 删除时出现了点问题似的

  因为是从一个类的集合中删除掉一个元素 这样就要遍历整个集合 而foreach正是为遍历准备的新玩意 自然而然用上了 于是代码类似如下

  string temp = name Text; // 从TextBox中读出数据 foreach (LCourse cou in Data myCourse) // 在List 中遍历 if (cou name == temp) // 判断cou的名字匹配 Data myCourse Remove(cou); // 匹配的即为要删除的 从列表中去除 break; // 跳出循环

  很容易就想到这么用foreach 貌似也没错误 但是印象中关于foreach的注意点就是只适用于遍历读取 不能修改 上边的代码却删除成功 这样 矛盾的种子就种在了心里 到底foreach是个什么东西?

  过程

  看了MSDN文档 可是文档里的示例用到时都是遍历读取每个元素 所以帮助不大 相关测试 异常 编译错误反倒有很大用处

  过程细节和总结

   自定义整型数组然后遍历修改

  foreach(int myint in myArray) myint+=

  错误 myint 是一个 foreach 迭代变量 无法为它赋值G:\\TEST\\VS C#\\testforeach\\Program cs testforeach

   自定义类 在类中定义函数对私有成员进行操作 然后遍历类对象并调用函数

  public class MyClass // 自定义的测试类 private int i = ; public void change() i = ; public override string ToString() return i ToString(); MyClass[] myTest = new MyClass[ ]; // 测试代码片段 foreach (MyClass mc in myTest) mc change(); Console WriteLine(mc ToString());

  通过了编译 但是抛出异常 NullRefferenceException 未将对象引用设置到对象的实例

   就是像开头测试的例子 稍有改动 移除后不用break跳出

  List myString = new List (); myString Add( ab ); myString Add( cd ); foreach (string s in myString) myString Remove(s);

  编译通过了 但运行时抛出异常 InvalidOperationException 集合已修改 可能无法执行枚举操作

  通过上面三个测试例子和开头的实际例子 我貌似看到了foreach的某种东西

  第一 不能修改的是foreach引用变量 因为它是引用的 对它的修改没有意义也没有作用

  它就像一个c/c++指针那样对集合中的元素进行指向引用 我们能通过引用看到它 但是没有能力动它

  第二 in之前的变量是引用变量 但in之后的集合确是实实在在的 所以可以对它操作 像 ADD();REMOVE()等方法可以使用

  第三 foreach引用变量大概是通过地址指向后面的集合(我猜想跟c/c++的指针很像) 当修改了集合的元素时 地址可能发生某种改变 所以不跳出循环继续遍历时 就可能出现引用找不到的情况

cha138/Article/program/net/201311/12716

相关参考

知识大全 C#中foreach基础使用方法[2]

C#中foreach基础使用方法[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  就是像开头

知识大全 C#中if语句基础学习

C#中if语句基础学习  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  usingSystem;c

知识大全 foreach和yield

  foreach  foreach无需要知道集合中元素个数就可以迭代集合中的元素它其实是迭代器模式的一个包装就语言层面来说是while的另一种形式  usingSystem;  usingSyste

知识大全 深入解析php中的foreach问题

  php中引入了foreach结构这是一种遍历数组的简单方式相比传统的for循环foreach能够更加便捷的获取键值对在php之前foreach仅能用于数组php之后利用foreach还能遍历对象(

知识大全 如何在smarty中增加类似foreach的功能自动加载数据

  在smarty中使用自定义插件来加载数据(见编写Smarty插件在模板中直接加载数据的详细介绍)在使用的时候还是感觉不够方便灵机一动就想写成类似foreach那种标签第一步在Smarty_Comp

知识大全 php遍历数组 list foreach each方法总结

在php中可以用来遍历数组的函数有很多如有for语句listeachforeach这四个函数这也是在php中遍历数组的几个主要的函数下面我来给大家介绍 foreach遍历数组我们在运用数组时

知识大全 C#基础知识回顾

C#基础知识回顾  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  今天在一个网站看到了一篇关于C#

知识大全 C#基础应用--Extension

C#基础应用--Extension  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  前几天有同事问

知识大全 foreach使用引用注意的问题

  foreach通过在$value之前加上&很容易就能修改数组的单元如PHP代码foreach($arr as &$value)   

知识大全 基于C#的接口基础教程之一

基于C#的接口基础教程之一  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  &