Hallo zusammen.
Wie kann man in einem Dictionary(Of String, Object) ein Schlüssel-Wert-Paar bspw. von Position 2 nach Position 5 verschieben?
Vielen Dank für Eure Hilfe
VG
Carsten
Hallo zusammen.
Wie kann man in einem Dictionary(Of String, Object) ein Schlüssel-Wert-Paar bspw. von Position 2 nach Position 5 verschieben?
Vielen Dank für Eure Hilfe
VG
Carsten
Hallo!
Meines Wissens nach gar nicht - ein Dictionary ist nicht primär dafür gedacht, die Einträge sequenziell zu durchlaufen, sondern schnelle Zugriffe von einem Schlüssel auf einen Wert zu realisieren.
Häufig werden solche Dictionaries mit Hilfe von B-Bäumen implementiert und die Möglichkeit zum Iterieren über alle Einträge durch Traversieren des Baumes realisiert. Ein „Verschieben“ eines Schlüssel/Wert-Paares würde daher die Ordnung im Baum durcheinander bringen.
Was möchtest Du denn durch das Verschieben erreichen?
Gruß,
Martin
Hallo, Martin.
Vielen Dank für Deine Antwort.
Was möchtest Du denn durch das Verschieben erreichen?
Ich möchte es Anwendern ermöglichen Listen nach eigenen Vorstellungen umzusortieren.
Ich bin auch bei dem Versuch gescheitert, diese Geschichte mit einem OrderedDictionary zu realisieren. Obwohl das OrderedDictionary die Insert-Methode besitzt, fehlen ihm andere Methoden, die mir wiederum im „normalen“ Dictionary zur Verfügung stehen und die ich aufgrund meiner Datenstruktur benötige. Es wird wohl darauf hinauslaufen, dass ich selbst eine Methode programmieren muss. Das musste ich auch schon für das automatische aufsteigende Sortieren, das dem Anwender optional zur Verfügung stehen soll.
VG
Carsten
Hi,
und kannst du nicht einfach die
List nehmen? Kannst da ja ein KeyValuePair
rein packen.
Gruss
Joey
Zwar nix zur Frage, aber soweit ich weis werden in .NET Dictionaries als Hashtables implementiert
MfG IGnow
Hoi,
du kannst z.B. über .ToArray() das Dict in ein solches speichern, über eine Schleife (und ne Temp-Variable) manipulieren und wieder in ein Dict zurück schreiben.
greetz, me