' schrieb:Das Problem ist wenn weitere Optionen hinzukommen und somit evtl das Enum nicht mehr mit dem Index übereinstimmt.
Ja, das ist ein Problem, das wohl auch andere haben.
Ich hab mir angewöhnt, die einmal erstellte Reihenfolge der Elemente nicht mehr zu ändern. Das ist zwar unschön für manche Anwender, erspart aber eigentlich unnützen Programmcode.
Eine Möglichkeit wäre folgende.
Verwende den Namen des Elementes (Name der Instanz). Dieser Name ist eindeutig - zumindest innerhalb des Clusters, in dem sich das Element befindet. (Der Name sollte auch innerhalb der Gesamtdatenstruktur eindeutig sein, z.B. wenn der Datensatz aus verschachtelten Clustern besteht. Noch besser natürlich, wenn es im ganzen Programm jeden Namen nur einmal gibt.) Dann durchsuchst du den gesamten Cluster nach dem Element mit dem gewünschten Namen. Die Suche ergibt dann die Referenz auf dieses Element.
Ich hab das mal so gemacht. Ist zwar, je nach Applikation, aufwändig zu programmieren. Funktioniert aber letztendlich ideal, weil die Referenz nur ein einziges Mal zu Beginn der Programmes gesucht werden muss und dann für den Rest der Programmlaufzeit feststeht.