C# Durchlaufen Wörterbuch-sortiert nach Wert
Gibt es eine Möglichkeit zur Iteration über ein Dictionary, sortiert, sortiert nach WERT nicht-Schlüssel?
Ich habe gelesen, über die "SortedDictionary" - Objekt, aber leider ist sortiert nach dem key.
Eine Lösung wäre für mich spiegeln alle meine Tasten mit meinen Werten, und legen Sie Sie in ein SortedDictionary (wie Sie auch alle Ganzzahlen) -- Allerdings bin ich mir nicht ganz sicher, wie man mit, dass man entweder.
- Wie oft haben Sie brauchen, um es zu tun? Wie effizient muss es sein? Sind Sie bereit, den Handel Arbeitsspeicher für mehr Geschwindigkeit?
- Es werden nur Betriebssystem auf über 500 Ergebnisse, und das nur einmal. Immer bereit zu handeln-Speicher für mehr Geschwindigkeit 😀
Du musst angemeldet sein, um einen Kommentar abzugeben.
Bekommen die Paare von Schlüsseln/Werten aus, Sortieren Sie, und wiederholt das ganze. Tot einfach mit LINQ:
Zur Fertigstellung, die vorgeschlagene code oben (- Wörterbuch.OrderBy(p => p.Wert)) "wird nicht" Arbeit für benutzerdefinierte Typen.
OrderBy macht den Einsatz von IComparable vergleichen zu können, werden zwei Objekte. Wenn Wert in Ihrem Wörterbuch ist ein benutzerdefinierter Typ, dann ist es muss IComparable implementieren zu können, Sortieren von Werten in einem richtigen Weg.
Lesen Sie auf hier.
IComparer
, nichtIComparable
wäre das nicht viel Sinn. Auch glaube ich nicht, das hat nichts zu tun mit Wert-Typen, es funktioniert auf die gleiche für jeden Typ.IComparable
. Aber die zweite überladung ist nicht nur für den rest der Typen. Es ist nützlich für die Angabe von alternate Bestellung (z.B. Bestellung von strings nach verschiedenen Kultur).//sort-Wörterbuch von Wert