首页 理论教育 C#泛型迭代器教程-C#编程新手自学手册

C#泛型迭代器教程-C#编程新手自学手册

时间:2023-10-22 理论教育 版权反馈
【摘要】:和普通集合类一样,在C#中也可以使用泛型迭代器来实现泛型集合。在本节的内容中,将通过一个具体实例的实现过程,向读者讲解C#泛型迭代器的使用过程。实例61:使用泛型迭代器处理列表本实例保存在“光盘:\daima\13”文件夹内,项目名为diedaiqi。本实例的功能是,通过泛型迭代器对定义的集合对象进行处理,并输出显示处理后的列表数据。由此可以看出,通过泛型迭代器可以同样操作对象的数据,并且减少了代码编写量。

C#泛型迭代器教程-C#编程新手自学手册

和普通集合类一样,在C#中也可以使用泛型迭代器来实现泛型集合。泛型迭代器和非泛型迭代器的用法类似,唯一的区别是泛型迭代器的返回类型必须是IEnumerable<T>和IEnumerator<T>。在本节的内容中,将通过一个具体实例的实现过程,向读者讲解C#泛型迭代器的使用过程。

实例61:使用泛型迭代器处理列表

本实例保存在“光盘:\daima\13”文件夹内,项目名为diedaiqi。本实例的功能是,通过泛型迭代器对定义的集合对象进行处理,并输出显示处理后的列表数据。实例文件的主要代码如下:

978-7-111-36370-5-Part03-109.jpg

978-7-111-36370-5-Part03-110.jpg

上述实例代码的设计流程如下。

1)通过using调用System.Collections.Generic类,定义命名空间diedaiqi。

2)自定义泛型类mm,设置类型为T。

3)定义类mm的构造函数,并设置其ArrayList类型成员qiuduis,用于存储数据。

4)分别实现方法Add()、Rmove()和GetEnumerator()的操作处理。

5)通过yield迭代,返回对象集合列表内的数据。

6)定义自定义类mm的成员club,用于存储数据。

7)通过方法Add()向club内添加五个数据。(www.xing528.com)

8)使用foreach将当前的数据输出显示。

执行后将输出显示操作处理后的数据,如图13-4所示。

由此可以看出,通过泛型迭代器可以同样操作对象的数据,并且减少了代码编写量。

978-7-111-36370-5-Part03-111.jpg

图13-4 实例执行结果

多学一招

在C#1.0中,若想使类型成为可枚举的类型(即如同使用数组一样使用foreach枚举数组中的成员),那么这个类中必须实现IEnumerable接口的GetEnumerator()方法返回IEnumerator:

978-7-111-36370-5-Part03-112.jpg

一般来说实现GetEnumerator是不容易的,从C#2.0开始引入了的新的语法扩充—迭代器,它简单方便地实现GetEnumerator()方法。

另外,从C#2.0开始引入了一个“不全代码”的概念,即可以将一个类的定义放在别的文件中。这样给大项目、大文件的维护带来了方便。不全代码的声明格式如下:

978-7-111-36370-5-Part03-113.jpg

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈