foreach … in statement manages the complexity of calling the appropriate methods in the correct order of enumerators. System.Collections.IEnumerable, System.Collections.IEnumerator, System.Collections.Generic.IEnumerable<T>, System.Collections.Generic.IEnumerator<T> yield keyword forach in is for each …