Mit Java Iterator
s habe ich die Methode hasNext
verwendet, um zu bestimmen, ob eine Iteration mehr Elemente enthält (ohne ein Element zu verbrauchen) - also ist hasNext
wie eine Methode " Peek
" / p>
Meine Frage: Gibt es so etwas wie eine Methode " hasNext
" oder " Peek
" mit C # 's generic IEnumerator
s?
Nein, leider nicht.
Die IEnumerator<T>
-Schnittstelle zeigt nur die folgenden Mitglieder:
Methoden:
Dispose
MoveNext
Reset
Eigenschaften :
Current
Nein, aber in C # können Sie wiederholt nach dem aktuellen Element fragen, ohne zum nächsten zu wechseln. Es ist nur eine andere Sichtweise.
Es wäre nicht too schwer, eine C # -Klasse zu schreiben, um einen .NET-Style IEnumerator
zu erhalten und einen Java-Style Iterator
zurückzugeben. Persönlich finde ich den .NET-Stil in den meisten Fällen einfacher zu benutzen, aber da gehen wir:)
EDIT: Okay, das ist komplett ungetestet, aber ich denke es wird funktionieren. Es kompiliert zumindest:)
%Vor%Sie können auch versuchen, sich dieses Implementing Peek anzuschauen IEnumerator und IEnumerator & lt; & gt; & gt; . Es ist eine Erweiterungsmethode, die IEnumerator die Peek-Funktionalität hinzufügt. Ich hoffe es hilft. :)
Tags und Links c# iterator ienumerator peek