In einem Projekt an dem ich arbeite, gibt es wirklich große Sammlungen (1 M-1B-Elemente), und die Dinge werden als Sammlungen meist modifiziert.Ihre eigene LINQ & IEnumerable Implementierung <T>
Es ist eine Echtzeit-App, und so ist die Leistung von größter Bedeutung.
Für einige der Operationen, wie umge, Binary (möglich?), Etc. werden mehr als andere, wie Wählen Sie leiden usw.
Ist es möglich, eine eigene IEnumerable mit möglichen Movenext des zu implementieren, MovePrev, etc. und eigene implementierte LINQ-Erweiterungen, die Vorteile daraus ziehen?
Wenn das passieren wird, wird es am Ende des Projekts passieren. Weil wir es zuerst arbeiten müssen, dann mach es schneller.
Alles in allem sollte das nicht zu viel Arbeit sein, oder?
Es tut uns leid, aber es ist nicht klar, wie Sie einen Leistungszuwachs planen, indem Sie Ihre eigene Schnittstelle für Sequenzen rollen. Was ist hier genau geplant? Für welchen Code sorgen Sie sich und versuchen, ihn zu ersetzen? – mquander
Ich würde hinzufügen, dass wenn Sie die Elemente Ihrer Sammlung in die Millionen nummerieren, Sie wahrscheinlich nicht alle im Speicher auf einmal speichern, richtig? Also ein naives Herangehen an das Retrieval wird sein, was Sie kostet, durch die Kosten für den Disketten- oder Netzwerkzugang oder was auch immer. Wenn Sie sich Sorgen um die Leistung machen, müssen Sie sich kompliziertere Abstraktionen als nur einfache Aufzählungen überlegen. – mquander
Es ist wirklich breit, alle Details hier einzubeziehen, aber als einfaches Beispiel die Reverse-Funktionalität zum Beispiel oder BinarySearch eine Sammlung für WhereSorted oder etwas. –