IEnumerator和IEnumerable接口在C#中的区别

IEnumerable和IEnumerator都是C#中的接口。

IEnumerable是定义单个方法的接口,该方法GetEnumerator()返回IEnumerator接口。

这适用于对实现IEnumerable可以与foreach语句一起使用的集合的只读访问。

IEnumerator有两种方法MoveNext和Reset。它还具有一个称为Current的属性。

下面显示了IEnumerable和IEnumerator的实现。

示例

class Demo : IEnumerable, IEnumerator {
   // IEnumerable method GetEnumerator()   IEnumerator IEnumerable.GetEnumerator() {
      throw new NotImplementedException();
   }
   public object Current {
      get { throw new NotImplementedException(); }
   }
   //IEnumertor方法
   public bool MoveNext() {
      throw new NotImplementedException();
   }
   //IEnumertor方法
      public void Reset() {
      throw new NotImplementedException();
   }
}

在上面可以看到IEnumerator的两种方法。

//IEnumertor方法
public bool MoveNext() {
   throw new NotImplementedException();
}

//IEnumertor方法
public void Reset() {
   throw new NotImplementedException();
}