为什么List定义了这三个方法?
public Enumerator GetEnumerator()
=> new Enumerator(this);
IEnumerator<T> IEnumerable<T>.GetEnumerator()
=> new Enumerator(this);
IEnumerator IEnumerable.GetEnumerator()
=> new Enumerator(this);
他们都在做同样的事情。只需要这个就足够了:
public Enumerator GetEnumerator()
=> new Enumerator(this);
Enumerator GetEnumerator()
lets it return a struct enumerator for use inforeach
loops, without allocating.IEnumerator<T> IEnumerable<T>.GetEnumerator()
lets it implement theIEnumerator<T> GetEnumerator()
method from theIEnumerable<T>
interface, so you can doIEnumerable<T> x = new List<T>(); foreach (var item in x) ...
- canton7