Queue enumeration — choose the correct code to access all elements of a System.Collections.Queue instance.
-
AIEnumerator e = q.GetEnumerator(); while (e.MoveNext()) Console.WriteLine(e.Current);
-
BIEnumerable e = q.GetEnumerator(); while (e.MoveNext()) Console.WriteLine(e.Current);
-
CIEnumerator e = q.GetEnumerable(); while (e.MoveNext()) Console.WriteLine(e.Current);
-
DIEnumerator e = Queue.GetEnumerator(); while (e.MoveNext()) Console.WriteLine(e.Current);
-
EUse foreach only; explicit enumerators are not supported.
Answer
Correct Answer: IEnumerator e = q.GetEnumerator(); while (e.MoveNext()) Console.WriteLine(e.Current);
Explanation
Introduction / Context:All non-generic collections in System.Collections support enumeration via IEnumerable/IEnumerator. Queue is no exception.
Concept / Approach:Call q.GetEnumerator() to get an IEnumerator. Iterate by calling MoveNext() and reading Current. foreach uses the same pattern behind the scenes.
Why Other Options Are Wrong:Option B: GetEnumerator() returns IEnumerator, not IEnumerable. Option C: GetEnumerable() does not exist. Option D: GetEnumerator() is an instance, not static, method. Option E: foreach is supported, but explicit IEnumerator use is also valid.
Final Answer:IEnumerator e = q.GetEnumerator(); while (e.MoveNext()) Console.WriteLine(e.Current);