title: .NET Dictionaries have same keys and values, but aren't "equal"
body: <p>This test fails:</p>
  
  <pre><code>using Microsoft.VisualStudio.TestTools.UnitTesting;        
  
  [TestMethod()]
          public void dictEqualTest() {
              IDictionary&lt;string, int&gt; dict = new Dictionary&lt;string, int&gt;();
              IDictionary&lt;string, int&gt; dictClone = new Dictionary&lt;string, int&gt;();
  
          for (int x = 0; x &lt; 3; x++) {
              dict[x.ToString()] = x;
              dictClone[x.ToString()] = x;
          }
  
          Assert.AreEqual(dict, dictClone); // fails here
          Assert.IsTrue(dict.Equals(dictClone)); // and here, if the first is commented out
          Assert.AreSame(dict, dictClone); // also fails
      }
  </code></pre>
  
  <p>Am I misunderstanding something about how a <code>Dictionary</code> works?</p>
  
  <p>I'm looking for the Java equivalent of <code>.equals()</code>, not trying to check referential equality.</p>