在C#中创建自己的集合类
集合类在.NET应用得很广泛,比如 ArrayList类,HashTable类等。这些集合类特有的一个特征就是可以用 foreach 循环遍历集合中的每一个元素。通过实现某个特定的接口,我们也可以创建自己的集合类。下面用C#说明。
在我们的例子中,将创建一个 Books类,用来存储一些书名的集合。我们可以添加、移除或遍历集合中的元素(即书名)。为了达到利用 foreach循环遍历集合的目的,我们必须实现下面两点:
1。在 Books类中实现 System.Collections.IEnumerable接口
2。创建一个实现 System.Collections.IEnumerator接口的类
IEnumerable接口
IEnumerable接口只有一个方法:GetEnumerator(),该方法返回一个实现了IEnumerator的类。下面就是实现了IEnumerable接口的Books类的代码:
IEnumerator接口
IEnumerator接口位于System.Collections名称空间下。我们必须实现该接口如下的方法和属性定义:
其中MoveNext()使游标移向下一个元素,直到最后一个元素。Reset()初始化集合,可以在这里设游标的值为-1。Current属性取回当前集合的元素。
下面就是实现了IEnumerator接口的类BooksEnumerator的代码:
通过传递一个Books对象给BooksEnumerator类的构造函数,BooksEnumerator类就维护一个指针指向集合的当前位置。
下面我们就可以使用这个Books集合类了:
Reference:http://www.dotnetbips.com/EEB3F756-B4B5-4863-8B6F-18D2EC6D37CE.aspx?articleid=65

浙公网安备 33010602011771号