title: AddRange to a Collection
body: <p>A coworker asked me today how to add a range to a collection. He has a class that inherits from <code>Collection&lt;T&gt;</code>. There's a get-only property of that type that already contains some items. He wants to add the items in another collection to the property collection. How can he do so in a C#3-friendly fashion? <em>(Note the constraint about the get-only property, which prevents solutions like doing Union and reassigning.)</em></p>
  
  <p>Sure, a foreach with Property. Add will work. But a <code>List&lt;T&gt;</code>-style AddRange would be far more elegant.</p>
  
  <p>It's easy enough to write an extension method:</p>
  
  <pre><code>public static class CollectionHelpers
  {
      public static void AddRange&lt;T&gt;(this ICollection&lt;T&gt; destination,
                                     IEnumerable&lt;T&gt; source)
      {
          foreach (T item in source)
          {
              destination.Add(item);
          }
      }
  }
  </code></pre>
  
  <p>But I have the feeling I'm reinventing the wheel. I didn't find anything similar in <code>System.Linq</code> or <a href="http://code.google.com/p/morelinq/" rel="noreferrer">morelinq</a>.</p>
  
  <p>Bad design? Just Call Add? Missing the obvious?</p>