Can anyone explain IEnumerable and IEnumerator to me?

For example, when to use it over foreach? what's the difference between IEnumerable and IEnumerator? Why do we need to use it?

Edit
Report