Die Frage ist vielmehr, wie willst du später die Datensätze effizient ansprechen. Dafür sollte ja der Schlüssel sein. Vergleiche es mit dem Primärschlüssel in einer Datenbank.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
Warf hat geschrieben: Sa 14. Jun 2025, 11:43
Das ist komplett egal da sie eh gehasht werden. Die Frage ist, wenn du lineare keys hast, warum benutzt du nicht einfach ein Array oder eine Liste?
Das mit Liste oder array stimmt.
Aber egal? Wenn "zufällige" keys benutzt werden, so musst Du sicherstellen, dass jeder key einmalig ist - daher verstehe ich noch nicht die Idee mit "zufällig" ...
Wissen ist das einzige Gut, das sich vermehrt, wenn es geteilt wird ...
Warf hat geschrieben: Sa 14. Jun 2025, 11:43
Das ist komplett egal da sie eh gehasht werden. Die Frage ist, wenn du lineare keys hast, warum benutzt du nicht einfach ein Array oder eine Liste?
Die Frage hatte ich mir auch gestellt. So mache ich das:
üblicherweise lese ich mehrere große Datenfiles (FE-Ergibnisse) ein, die dann miteinander verwurstet werden
Die werden dann der Reihe nach gescannt und die wichtigen Daten in eine Struktur (eine entsprechend definierte Klasse) gepackt
diese werden dann in eine TObjectList<TKlasse> gehängt, so dass alle Daten dann erreichbar sind (zumal der Original-Poster ja sowieso schon eine TKlasse definiert hat)..
Den Vorteil eines TDictionaries habe ich nicht gesehen/verstanden - und daher erst einmal nicht gepostet. Sorry.
Also ich würde es auch über eine Liste lösen.
Ciao,
Photor
PS: den grundsätzlichen Vorteil von TDictionary kenne ich schon. Aber wenn sowieso der Key beliebig vergeben wird ... ?
@Niesi, Warf: Na wenn es für ein als hashmap impementiertes TDictionary egal ist, genau das wollte ich wissen. Bei einem Dictionary sind die keys immer einzigartig und ich brauche mich darum kaum zu kümmern, außer beim vergeben von keys. Diesen Vorteil sehe ich beim Array gar nicht.
@af0815: Danke, ich habe mir nochmal überlegt wie das "Ansprechen" am vorteilhaftesten wäre - den Dateinamen - als key für das Dictionary zu verwenden. So kann ich noch besser den Überblick behalten und es wird nicht zu kryptisch. Ich schreibe gerade an einem Resourcen-Manager.
@Photor: ich habe eine Art TBaseResource und der Manager soll dann die verschiedenen Resourcen laden z.B. Fonts, Texturen, praktisch alle Assets