Members not available when implementing IList
<p>I've tried to create a simple class implementing IList.  However the members are not available unless I first cast DiskBackedCollection to IList.  How can I make it usable without casting?</p>

<pre><code>public partial class DiskBackedCollection&lt;T&gt; : IList&lt;T&gt;
{
    private List&lt;T&gt; _underlyingList = new List&lt;T&gt;();

    int IList&lt;T&gt;.IndexOf(T item)
    {
        return _underlyingList.IndexOf(item);
    }

    T IList&lt;T&gt;.this[int index]
    {
        get
        {
            return _underlyingList[index];
            throw new NotImplementedException();
        }
        set
        {
            throw new NotImplementedException();
        }
    }

    int ICollection&lt;T&gt;.Count
    {
        get
        {
            return _underlyingList.Count;
        }
    }

    IEnumerator&lt;T&gt; IEnumerable&lt;T&gt;.GetEnumerator()
    {
        return new DiskBackedCollectionEnumerator(this);
    }

    IEnumerator IEnumerable.GetEnumerator()
    {
        return new DiskBackedCollectionEnumerator(this);
    }
}
</code></pre>
