I know a class can implement both IEnumerable and IEnumerator (its GetEnumerator method will simply "return this" and there won't be any compile-time issue, but I've read that we should avoid this practice as this can cause problems if we called GetEnumerator()
a second time before the first enumeration was completed.
I'm still confused about why we should avoid this and how can it cause a problem. It would be great if someone could explain this in detail for greater understanding.