title: .NET: Are Dictionary values stored by reference or value
body: <p>I have a <code>Dictionary&lt;int, Product&gt;</code>.   If the same Product is added to more than one key is an new instance of that object stored for each key? Or just a reference to the original object? </p>
  
  <p>This collection is very large and each product will have between 1-10 Keys to it.  My primary concern is memory allocation.</p>