Ich habe eine verschachtelte Karte wie folgt:Elemente verschachtelte Karte hinzufügen effizient
Map<int, Map<int, int>>
Und ich möchte so effizient in der Lage sein, ein Element der verschachtelten Karte hinzuzufügen und ordentlich wie möglich.
Meine aktuelle Lösung ist so etwas wie diese:
let AddStuff (collection:Map<int, Map<int, int>>) firstID secondID value =
let newValue = collection.[firstID].Add(secondID, value)
let newCollection = collection.Add(firstID, newValue)
newCollection
Dies scheint mir nicht der F#
Weg, um Dinge zu tun, so frage mich, was ist der beste Weg zu einer verschachtelten Karte hinzufügen?
bearbeiten Einige erwarteten Eingabe/Ausgabe:
let aMap = map[(1, map[(1, 1)])]
let firstID = 1
let secondID = 2
let value = 2
let newMap = aMap firstID secondID value
// newMap = map[(1, map[(1, 1); (2, 2)])]
Edit 2
Es scheint, dass partialCollection am Ausgang keine Wirkung hatte, so habe ich es von der Funktion entfernt.
Das Problem wäre leichter zu verstehen, wenn Sie auch einige Testfälle (Eingabe und erwartete Ausgabe) liefern. –
@MarkSeemann Sorry, Bearbeitungsprobleme. Ich habe die 3. Zeile in der Funktion geändert, um partialCollection darzustellen – Hayden
Ich sehe, Sie gerade Ihre Frage bearbeitet, wie Sie festgestellt haben, dass 'Map.Add' in F # ist im Wesentlichen" hinzufügen oder ersetzen ". Was du jetzt hast, sieht für mich so aus, als wäre es der richtige Weg, also hast du im Wesentlichen deine eigene Frage beantwortet, indem du sie redest, soweit ich das beurteilen kann. – rmunn