title: Why doesn't the NameObjectCollectionBase class provide a way to insert objects into the collection by index?
body: <p>The <code>System.Collections.Specialized.NameObjectCollectionBase</code> class is used extensively at my company as the basis of collection classes. (Let's not get into questioning why.) I recently came across a situation where I needed to add an object at a specific index, but the functionality wasn't there. At first I wondered why we had left that functionality out of <em>our</em> collection classes, but I soon discovered that the functionality is missing from <code>NameObjectCollectionBase</code>!</p>
  
  <p>You can access objects in the collection by index (<code>BaseGet(int index)</code>).<br>
  You can remove objects from the collection by index (<code>BaseRemoveAt(int index)</code>).<br>
  But you can't insert an object at a specific index.</p>
  
  <p>I can't think of a good reason why this functionality isn't available. Can you?</p>
  
  <p>[Update]The underlying implementation is not just a <code>HashTable</code>. The collection maintains both a <code>HashTable</code> and an <code>ArrayList</code>. You can verify this using Reflector.</p>