I once use a HashTable to work as a fast data lookup for some struct.
And I use a delegate to implement the Find() method to lookup.
Everything works fine until I try to modify values of the struct that my Find() gives me.
I later find out that because struct is a value type variable.
That means, my Find() return a copy of that struct, modifying it is just useless.
So, HashTable with struct AS-IS readonly.
If you want to have a HashTable with object that is changable,
simply use Class instead of struct.
Well, actually, struct is recommended to use for read only data in MS press book.