Hallo!
Vorweg: Eine
HashTable stammt noch aus Zeiten von .NET 1.1. Inzwischen sollte man besser die generische Dictionary-Klasse benutzen.
Da die HashTable nicht generisch ist, kann sie Items nur als Object zurückgeben, womit Deine verschachtelte Syntax schon nicht funktionieren kann, denn
hash["foo"] ist erst einmal nur noch ein Object.
Auf jeden Fall musst Du natürlich HashTables (egal ob innere oder äußere) wie jede andere Klasse auch erstellen. Sonst kann man nicht drauf zugreifen. Bei einem Dictionary sähe das ganze so aus (mal als Oxygene, bist ja schließlich Pascal gewohnt

)
Oxygene-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| var myDict := new Dictionary<String, Dictionary<String, Integer>>;
myDict['name'] := new Dictionary<String,Integer>; myDict['name']['preis'] := 3;
myDict['name2'] := new Dictionary<String,Integer>; myDict['name2']['preis'] := 2;
for kvp in myDict do for kvp2 in kvp.Value do Console.WriteLine(kvp.Key+' '+kvp2.Key+' '+kvp2.Value.ToString);
Console.ReadLine; |
Grüße
Christian
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".