たまたま MSDNを調べてみたIList<T>ところICollection<T>、これら 2 つのインターフェイスの定義は次のようになっていることがわかりました。
public interface ICollection<T> : IEnumerable<T>, IEnumerable
public interface IList<T> : ICollection<T>, IEnumerable<T>, IEnumerable
がandICollection<T>から継承していることに注意してください。それで問題ありません。から継承していますが、なぜ継承しなければならないのでしょうか?IEnumerable<T>IEnumerableIList<T>ICollection<T>IList<T>IEnumerable<T>IEnumerable
これには何か理由がありますか?