Zitat von
romber:
Hallo!
Ich habe für meine Zwecke einen neuen Typ definiert und jeder Variante zusätzlich eine Zahl zugewiesen.
Delphi-Quellcode:
type TMeinTyp = (mtVariante1 = 1,
mtVariante2 = 15,
mtVariante3 = 35,
...
mtVariante25 = 455);
Am liebsten würde ich einen Set erstellen, der dann mehrere Varianten enthält. Ich könnte dann ganz einfach und schnell mit "if in set" prüfen, ob eine bestimmte Variante drin ist. Das problem ist, dass ein Set maximal 256 Elemente besitzen kann. Und obwohl ich nur 25 potenzielle Elemente habe, ist ein Set in meinem Fall nicht möglich, weil Integerwerte einiger Varianten über 256 liegen.
Mit bleibt wohl nichts anderes, als ein Array zu erstellen. Wie kann ich besonders schnell und resourcensparend überprüfen, ob sich ein Wert im Array befindet?
Du solltest dir ein Set und ein Lookup array erstellen.
Delphi-Quellcode:
type
TMeinTyp = (mtVariante1, mtVariante2, mtVariante3,... mtVariante25);
const
cMeinTypOrdinal: array[TMeinTyp] of integer = (1,15,35,...455);
dann kannst du ein Set erstellen, um die Varianten zu speichern und wenn Du deren Ordinalwert benötigst greifst Du auf das Lookuparray zu.
Gruss