欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

C#中foreach实例代码

程序员文章站 2022-03-05 14:44:30
...
foreach可以遍历一些数据类型。由图可知,被遍历的数据类型必须拥有GetEnumerator的公共方法。

C#中foreach实例代码C#中foreach实例代码在使用foreach遍历时涉及到var推断类型,这时如何不是实现泛型版本,则一律是object类型。

foreach遍历只能读取数据,不能修改数据,可以通过string检测,string是可遍历的,但是组成它的char是不能改变的。(只在次情景下)。

foreach遍历只进,一条一条往下读,和操作数据库的DataReader的Read方法类似。

由上面的分析可知,需要在类的内部定义IEnumerator方法,才能被遍历。这里有两个办法解决。

方法一、通过yield

yield return 表达式;如果返回值为IEnumerable<T>则表示自动生成一个可迭代类型。

如果返回值为IEnumerator<T>则表示自动生成一个迭代器。其中IEnumerator类型就一个迭代器。

C#中foreach实例代码

遍历时能以此拿到上图中person数组的值。

方法二 通过实现IEnumerable接口

IEunmerable包括GetEunmetator的方法,并且返回值是IEnumerator的类型。

C#中foreach实例代码

此时就需要另外一个类去继承IEnumerator接口,这样才能返回它的子类,即可达到目的。

C#中foreach实例代码

实现过程:

1.需要添加int类型的变量,用于标记索引的位置。这里用int position=-1。

2.添加对应的数组变量,用于接收传过来的数组。这里用string[] persion;

3.实现的Curren属性,需要返回当前索引的数据。return person[position];

4.实现MoveNext方法,需要将指针(索引)加1,向前移动,返回值是bool类型,用于确定是否操作了索引。

5.实现Reset方法,这是重置方法,把position赋值为-1;

6.添加一个带参数的构造函数,其中接收传递过来的数据。

C#中foreach实例代码

C#中foreach实例代码

三、List集合分析

通过反射工具可知,List集合的Add方法就是给内部的item添加值,而这个item是一个数组。因为是泛型的,所以显示为T。

也就是其中集合的内部有这样一个变量,用来存储添加进来的数据,也就像上面自己定义的数组一样,这样List集合类就和上述

自定义的类一致了,上述的定义只是为了演示过程,当然出于业务的需求,是可以自己去实现扩展上述类的,例如把静态的数据

改变为Add方法添加,筛选数据的逻辑等,都可以根据业务需求进行扩展。

C#中foreach实例代码

C#中foreach实例代码

以上就是C#中foreach实例代码的详细内容,更多请关注其它相关文章!