Welches .NET-Wörterbuch unterstützt eine Operation zum Suchen des nächsten Schlüssels?

Ich konvertiere etwas C ++ - Code in C # und es ruft std :: map :: lower_bound (k) auf, um einen Eintrag in der Map zu finden, dessen Schlüssel gleich oder größer als k ist. Ich sehe jedoch keine Möglichkeit, dasselbe mit dem SortedDictionary von .NET zu tun. Ich vermute, ich könnte eine Problemumgehung mit SortedList implementieren, aber leider ist SortedList zu langsam (O (n) zum Einfügen und Löschen von Schlüsseln). Was kann ich machen?

Hinweis: Ich habe eine Problemumgehung gefunden, die sich mein bestimmtes Szenario zunutze macht ... Insbesondere sind meine Schlüssel eine dichte Population von Ganzzahlen, die bei etwas mehr als 0 beginnen. Daher habe ich List <TValue> als Wörterbuch mit dem Listenindex als verwendet Der Schlüssel und die Suche nach einem Schlüssel, der gleich oder größer als k ist, kann in nur wenigen Schleifeniterationen durchgeführt werden. Es wäre aber trotzdem schön, wenn die ursprüngliche Frage beantwortet würde.

Antworten auf die Frage(8)

Ihre Antwort auf die Frage