温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何使用C#中的foreach

发布时间:2020-07-20 11:02:40 来源:亿速云 阅读:250 作者:Leah 栏目:编程语言

今天就跟大家聊聊有关如何使用C#中的foreach,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

  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有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注亿速云行业资讯频道,感谢大家的支持。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI