Nested Dictionarys

Aloha zusammen…

Ich arbeite ja doch schon etwas lnger mit Dictionarys bin aber aktuell bei einer Situation angelangt die ich erstmals habe.

Es geht darum… ich habe ein Dictionary mit mehreren Ebenen… Bsp:

DictionaryA (Root)

  • Dictionary1 (Ebene1)
    – DictionaryX (Ebene2)

Nun bastel ich mir ein neues Dictionary mit irgendwelchen Werten, und nenne es nun mal “DictionaryXXX”… Nun mchte ich DictionaryXXX in DictionaryX schieben.

Der logische Menschenverstand sagt mir hier das es anders wie ich es kenne es doch mglich sein muss das z.B. so zu schreiben:
DictionaryA.Value(A).Value(1).Value(X).Value(XXX) = DictionaryXXX < was aber nicht funktioniert da ja jedes ergebniss ein Variant ist und er nicht wei das er als Dictionary aggieren soll :slight_smile:

So wie ich es kenne mssten erst alle Dictionarys auseinandergefummelt werden und anschlieend wieder zusammengebaut werden.

Vielleicht hat ja einer ne Idee :wink:

lg

Try extends?

[code]Function Dictionary(extends d As Dictionary, key as Variant) As Dictionary

if d.HasKey(key) and d.value(key) isa dictionary then Return Dictionary(d.Value(key).ObjectValue)

dim newdict as new Dictionary
d.Value(key)=newdict
Return newdict
End Function
[/code]

then

[code] dim d As new Dictionary

d.Dictionary(“MyDict”).Value(1)=2

MsgBox d.Dictionary(“MyDict”).Value(1).StringValue[/code]

Casting ist das Zauberwort:

Dictionary((Dictionary(Dictionary(DictionaryA.Value(A)).Value(1)).Value(X)).Value(XXX) = DictionaryXXX

aber bitte in 10 Zeilen und nicht in einer.
Jedenfalls mag ich es zwischenwerte im Debugger sehen zu können.

Ist es nicht an der Zeit, die Datenstruktur zu überdenken? XML, Json, Datenbank? Alles abgebildet in einer hierarchischen Klassen-Struktur.