Use foreach to loop over IEnumerable, not IEnumerator.
Thus, instead of
foreach (Employee anEmp in empcoll.GetEnumerator()) {
Console.Write(" " + anEmp.Name + " " + anEmp.Age + "\n");
}
You could do:
foreach (Employee anEmp in empcoll) {
Console.Write(" " + anEmp.Name + " " + anEmp.Age + "\n");
}
Basically, the foreach keyword is just syntactic sugar for:
using (var enumerator = enumerable.GetEnumerator()) {
T loopVar;
while (enumerator.MoveNext()) {
loopVar = enumerator.Current;
... loop body ...
}
}
That said, the LINQ operators (e. g. Where()), might be a better solution to the problem you're trying to solve:
List<Employee> emps = ...;
foreach (var junior in emps.Where(e => e.Age < 50)) {
...
}