Im Grunde frage ich mich, warum MS beschlossen hat, einen Enumerator zu implementieren, der nur vorwärts geht: MoveNext()
.Was ist der Grund für IEnumerable/IEnumerable <T> Schnittstellen, nur MoveNext zu haben?
Ist es nicht flexibler, auch MovePrevious
für diese weit verbreitete Schnittstelle im gesamten .NET Framework zu erzwingen?
Ich kann mir vorstellen, dass es die Linq.Reverse
viel einfacher zu implementieren für MS und effizienter in der Leistung, aber ich bin mir nicht sicher, ob dies andere Dinge langsamer macht oder einen massiven Aufwand für alles andere.
Jeder mit mehr Wissen in diesem Thema kann mehr Informationen zu diesem bitte geben? d.h. die Vor- und Nachteile, MovePrevious
in IEnumerable/IEnumerable<T>
zu haben oder nicht.
ITraversable? :) –
@MarkSimpson: Ich hätte gerne eine 'Skip'-Methode zusammen mit einer Eigenschaft gesehen, die anzeigen würde, ob sie negative Werte akzeptieren könnte. Kein vernünftiger "IEnumerator" sollte Schwierigkeiten bei der Implementierung einer "skip-forward-N-items" -Methode haben, und bei baumbasierten Auflistungen könnte das Abrufen von M-Elementen aus einer Sammlung von N O (M + logN) anstatt O sein (MlogN) oder O (N), die ansonsten die besten sind, die über 'IList' erreicht werden können. –
supercat