Ich habe ein Dictionary
, dass für die meisten Operationen Ich muss nur einen einzelnen Eintrag durch Schlüssel abrufen, aber für ein paar Operationen Ich muss mit den Einträgen mit einer Reihe von assoziierten arbeiten Schlüssel. Der Weg, der mir dabei einfällt, ist die Verwendung von GetKeys
und FindAll
, die dem Bereich entsprechen, an dem ich interessiert bin, aber ich frage mich, ob jemand eine bessere Methode vorschlagen könnte.Effiziente Weise eine Reihe von Keys von Wörterbuch bekommen
Antwort
A Dictionary
die als Hash-Tabelle implementiert ist, ist nicht besonders geeignet, um effizient Bereichsauswahloperationen auf Tasten durchzuführen. Sie müssen alle Schlüssel aufsuchen, um alle in einem bestimmten Bereich zu finden. Ein guter Weg, dies zu erreichen, besteht darin, seine Sammlung von Schlüsseln mit einem einfachen LINQ-Ausdruck abzufragen.
Wie Sie sagten, ein Fund würde alle funktionieren. Vielleicht etwas wie;
dictionary.FindAll(entry => multipleStrings.Contains(entry.Key));
A SortedList
oder SortedDictionary
würden die Elemente sortiert, so können Sie versuchen, den Schlüssel an der Unterseite des Bereichs erhalten dann die Elemente an die Spitze des Bereichs durchqueren.
Binäre Suche auf einem SortedList
werden Sie den Index des Schlüssels geben Sie die Unterseite des Bereichs oder der nächsthöheren Wert entspricht. Siehe How to perform a binary search on IList<T>?
- 1. Effiziente Weise numpy Rekord-Array auf eine Liste von Wörterbuch
- 2. effiziente Art und Weise von
- 3. Ermitteln, ob das Wörterbuch eine ganze Reihe von Schlüsseln enthält
- 4. Effiziente Weise Canonical-Tags
- 5. Effiziente Weise String Länge N
- 6. Effiziente Weise eine diagonale Sparse Matrix
- 7. Python: Eine elegante Weise, leere Listen von Python-Wörterbuch
- 8. Effiziente Weise Throught XML-Elemente
- 9. Pandas Dataframe iterativ auf effiziente Weise hinzufügen
- 10. effiziente Weise mehrere Male mit dplyr
- 11. eine Reihe von mySQL Datenbank bekommen, wenn der Preis
- 12. effiziente Art und Weise einzigartig Teilern
- 13. Effiziente Art, Index der Reihe zu finden?
- 14. Effiziente Weise eine Drei-Kanal-LUT zu erzeugen Maske
- 15. Eine Reihe von Daten mit einer Reihe von Tagen filtern
- 16. Effiziente Methode zur Berechnung der Wahrscheinlichkeit einer Reihe von Ergebnissen?
- 17. Effiziente Möglichkeit, eine Liste zu konvertieren Zum Wörterbuch
- 18. effiziente Art und Weise Array von Person zu filtern, auf einem Array von String-Namen Objekten
- 19. Effiziente Methode zum Laden und Anzeigen von Amimation (eine Reihe von Drawable Frames)
- 20. Effiziente Weise xml auszuführen in Python Parsen
- 21. Entfernen Sie mehrere Schlüssel aus Map auf effiziente Weise?
- 22. Wie eine Reihe von Bereichen von Position
- 23. effiziente Art und Weise Graphentheorie Algorithmen
- 24. Umnummerierung eine Reihe von Zeilen
- 25. Warum aktualisiert ein Wörterbuch mit Tuple-Keys, die mit zip gestartet wurden, alle Keys nach der Aktualisierung eines einzelnen Keys?
- 26. Effiziente Weise, zwei Arrays zu vergleichen
- 27. SQL Server - Effiziente Weise eine Zuordnung/Konglomerat meiner Daten
- 28. Python: Wie CSV-Datei auf eine effiziente Weise zu lesen?
- 29. effiziente Aktualisierung von Variablen
- 30. Konvertieren eine Liste von Listen in ein Wörterbuch von Listen