So the MSDN for HashTables says:
The objects used as keys by a Hashtable are required to override the Object.GetHashCode method (or the IHashCodeProviderinterface) and the Object.Equals method (or the IComparer interface).
However, is that really necessary for elemental data types? The example further down that page doesn't show any kind of overwriting for the string key.