title: Order-preserving data structures in C#
body: <p>MSDN has no information on the order preserving properties of data structures. So I've been making the assumption that:</p>
  
  <ul>
  <li>HashTable and HashSet <em>do not</em> preserve the insertion order (i.e. the "hash" in there is a giveaway)</li>
  <li>Dictionary and List <em>do</em> preserve the insertion order.</li>
  </ul>
  
  <p>From this I extrapolate that if I have a <code>Dictionary&lt;double, double&gt; foo</code> that defines a curve, <code>foo.Keys.ToList()</code> and <code>foo.Values.ToList()</code> will give me an ordered list of the scope and domain of that curve without messing about with it?</p>