title: Adding a range of values to an ObservableCollection efficiently
body: <p>I have an <code>ObservableCollection</code> of items that is bound to a list control in my view.</p>
  
  <p>I have a situation where I need to add a chunk of values to the start of the collection. 
  <code>Collection&lt;T&gt;.Insert</code> documentation specifies each insert as an O(n) operation, and each insert also generates a <code>CollectionChanged</code> notification.</p>
  
  <p>Therefore I would ideally like to insert the whole range of items in one move, meaning only one shuffle of the underlying list, and hopefully one <code>CollectionChanged</code> notification (presumably a "reset").</p>
  
  <p><code>Collection&lt;T&gt;</code> does not expose any method for doing this. <code>List&lt;T&gt;</code> has <code>InsertRange()</code>, but <code>IList&lt;T&gt;</code>, that <code>Collection&lt;T&gt;</code> exposes via its <code>Items</code> property does not.</p>
  
  <p>Is there any way at all to do this?</p>