To avoid array-like dictionary keys, I'm current using a template like:
LevelXGlyphYVariableZ
Where X Y and Z are whatever values I need them to be. Honestly I'm not too keen on using the tokenat unless I have to.
Each time a new glyphs is created, which is one at a time, I store three new keys, which are basically variations of, for example, Level2Glyph0VariableX, Level2Glyph0VariableY, Level2Glyph0VariableZ.
To see if a glyph exists in the dictionary, I simply check if the key Level1Glyph5Variable0 exists.
However, counting glyphs will be a pain unless, so I think when I "destroy" a glyphs, I will count the UID as zero, and while counting or going through the "list" of glyphs, ignore anything with a UID of 0. :)
Again, thanks everyone for your input. I'm slowly getting my system converted to use a dictionary instead of an array.
I can't wait to put my game together. In two weeks time I will be showing my Game Design club what I've finished! :D C2 has taught me much about using arrays, dictionaries, angular interpolation, and keeping my code tidy. :)