title: Best performance for ObservableCollection.AddRange
body: <p>I'm writing an extension method for ObservableCollection and have read that the .Add function raises 3 property changed events per call,</p>
  
  <p>So that something like this is a bad idea:</p>
  
  <pre><code>public static void AddRange&lt;T&gt;(this ObservableCollection&lt;T&gt; oc, IEnumerable&lt;T&gt; collection)
  {
      if (collection == null) { throw new ArgumentNullException("collection"); }
      foreach (var i in collection) { oc.Add(i); }
  }
  </code></pre>
  
  <p>Are there any other solutions to this?</p>