Does a Collection<T> wrap an IList<T> or enumerate over the IList<T>?
<p>If I am exposing a internal member via a Collection property via:</p>

<pre><code>public Collection&lt;T&gt; Entries
{
    get { return new Collection&lt;T&gt;(this.fieldImplimentingIList&lt;T&gt;); }
}
</code></pre>

<p>When this property is called what happens?  For example what happens when the following lines of code are called:</p>

<pre><code>T test = instanceOfAbove.Entries[i];
instanceOfAbove[i] = valueOfTypeT;
</code></pre>

<p>It's clear that each time this property is called a new reference type is created but what acctually happens?  Does it simply wrap the <code>IList&lt;T&gt;</code> underneath, does it enumerate over the <code>IList&lt;T&gt;</code> and to create a new <code>Collection&lt;T&gt;</code> instance?  I'm concerned about performance if this property is used in a <code>for</code> loop.</p>
