19 枚举集合

1.枚举集合中的元素

下例用foreach语句列出一个简单数组的数据项:

int[] pins = {9,3,7,2};

foreach (int pin in pins)
{

    Console.Writel ine(pin);

}

foreach极大简化了需要编写的代码,但它只能在特定情况下使用一只能 遍历可枚举集合。

什么是可枚举集合?简单地说,就是实现了System.Collections . IEnumerable接口的集合。

 

注意:C#的所有数组都是System.Array 类的实例。而System.Array 类是实现了IEnumerable接口的集合类。

 

IEnumerable接口包含一个名为GetEnumerator的方法:

IEnumerator GetEnumerator();

GetEnumerator方法应返回实现了System. Collections . IEnumerator接口的枚举器对象。枚举器对象用于遍历(枚举)集合中的元素。IEnumerator接口指定了以下属性和方法:

object Current { get; }

bool MoveNext();

vold Reset();

 

可将枚举器想像成指向列表中的元素的指针。指针最开始指向第一个元素之前的位置。

 

调用MoveNext方法,即可使指针移至列表中的下一项(第一 项); 如果能实际地移到下一项,

MoveNext方法返回true,否则返回false。

可用Current属性访问当前指向的那一项;

使用Reset方法,则可使指针回到列表第一项之前的位置。

使用集合的GetEnumerator方法创建枚举器,然后反复调用MoveNext方法,并获取Current属性的值,就可以每次在该集合中移动一-个元素的位置。这正是foreach语句所做的事情。所以,为了创建自己的可枚举集合类,就必须在自己的集合类中实现IEnumerable接口,并提供IEnumerator接口的一个实现,以便由集合类的GetEnumerator方法返回。

 

参考书籍:《Visual C#从入门到精通》

发布了46 篇原创文章 · 获赞 53 · 访问量 3703

猜你喜欢

转载自blog.csdn.net/qq_38992372/article/details/105027808
19
今日推荐