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 }
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); }