title: Collection<T> class and it's use
body: <p>I came across the following code:</p>
  
  <pre><code>var collection = new Collection&lt;string&gt;();
  </code></pre>
  
  <p>I haven't seen the Collection class used too much, and can't find too much information about its purpose. Looking at the .NET Framework source, it's pretty much just a wrapper around a List as it stores a List member field. Its constructor is as follows:</p>
  
  <pre><code>public Collection()
  {
    this.items = (IList&lt;T&gt;) new List&lt;T&gt;();
  }
  </code></pre>
  
  <p>And it also implements IList. So you can declare the Collection as:</p>
  
  <pre><code>IList&lt;string&gt; collection = new Collection&lt;string&gt;();
  </code></pre>
  
  <p>Which to me is functionally equivalent to creating a List instead:</p>
  
  <pre><code>IList&lt;string&gt; collection = new List&lt;string&gt;();
  </code></pre>
  
  <p>So when would you ever want to use it over a List in your own code? I see that it is a base class for other .NET collections, but why would they include this as a <strong>public concrete</strong> (as opposed to internal and/or abstract)?</p>
  
  <hr>
  
  <p><em>Regarding comments around possible duplicates</em> -- the answers to related questions seem to say that Collection class is supposed to be used as a base class. What I'm really asking that's different is:</p>
  
  <ol>
  <li>If using in your own code, why not use List as a base class instead?</li>
  <li>Does it really ever make sense to instantiate a new Collection in
  your own code in place of List?</li>
  <li>If it really is <strong>only</strong> provided to serve as a base class, <strong>why is it not abstract</strong>?</li>
  </ol>