1     //让类能在FOREACH循环中使用
 2     public class students  
 3     {
 4         int i = -1;
 5 
 6         student[] stus  ;
 7         public students() {
 8             stus = new student[2]{ new student("xx"),new student("wsenmin") };
 9         }
10         public IEnumerator GetEnumerator()
11         {
12             return (IEnumerator)this; 
13         } 
14         public object Current
15         {
16             get{
17                 return  stus[i];
18             }
19         
20         } 
21         public bool MoveNext()
22         {
23             i++;
24             return (i < stus.Length);
25         }
26         public void Reset() {
27             i = -1;
28         }
29     }
View Code

 

 

GetEnumerator 将类转化为IEnumerator

Current 返回当前值

MoveNext 设置当前索引

Reset 重置索引

            students stus = new students();
            foreach (student item in stus)
            {
                Console.WriteLine(item.Name);
            }
            stus.Reset();
            foreach (student item in stus)
            {
                Console.WriteLine(item.Name);
            } 
            
View Code

 

posted on 2013-05-27 19:57  wsenmin  阅读(265)  评论(0编辑  收藏  举报