looking at this post: references updated on GC, it seems that the heap could get compacted on a Garbage collection which means that the references would change.
Now if I were to put an object in a Dictionary as a key (assume that the object does not implement GetHashCode/Equals), then the reference would be used to determine it's location within it's internal Hash table. Subsequently on a GC, if the reference changes, and I want to lookup the object how would C# find it?