A set can be approximated by making "GetValue" a nop function, and just paying attention to the bool result from FindEntry, although you do need to either reserve a certain Key as invalid, or add space to store a valid flag as the Value. This class should only be used for small value types, as the values are embedded into the hash table, and not stored separately.