title: Is it safe to use float.NaN as Dictionary key?
body: <p>code(from interactive shell):</p>
  
  <pre class="lang-cs prettyprint-override"><code>&gt; var a = new Dictionary&lt;float, string&gt;();
  &gt; a.Add(float.NaN, "it is NaN");
  &gt; a[float.NaN]
  "it is NaN"
  </code></pre>
  
  <p>So it is possible, but is it safe?</p>