在.Net中,要想被foreach遍历,那么目标对象要实现IEnumerable或IEnumerable<T>接口,这个接口有一个方法,GetEnumerator(),返回一个IEnumerator接口,这个接口里定义了Next()等方法,例如: public class Garge : IEnumerable { public IEnumerator GetEnumerator { return new A(); } internal class A : IEnumerator { //实现
使用IEnumerable接口遍历数据,这在项目中会经常的用到,这个类型呢主要是一个枚举器. 1.首先需要让该类型实现一个名字叫IEnumerable的接口,实现该接口的主要目的是为了让当前类型中增加一个名字叫GetEnumerator()的方法. public class Person : IEnumerable { private string[] Friends = new string[] { "张三", "李四", "王五", &quo
声明IEnumerator的枚举数 要创建非泛型接口的枚举数,必须声明实现IEnumerator接口的类,IEnumerator接口有如下特性: 1.她是System.Collections命名空间的成员 2.它包含3个方法Current.MoveNext和Reset 例如:下面代码实现了一个列出颜色名数组的枚举数类: using System.Collections; class ColorEnumerator:IEnumerator { string [] Colors; ; public
用C#实现一个类的IEnumerable接口时有两种方法:1)实现非泛型IEnumerable接口:2)实现泛型IEnumerable(T)接口.如果采用方法1,当集合元素T是值类型时,将涉及到巨多的boxing和unboxing操作.因此,理所当然地采用方法2: 例如,以下代码采用方法2实现枚举从指定偏移开始所有整数 using System.Collections.Generic; class Ints : IEnumerable<int> { private readonly int o