title: Inheritance in C# predefined interfaces not clear
body: <p>I'll explain the question with an <b>example</b>. </p>
  
  <p>The C# predefined interface <code>IList&lt;T&gt;</code> inherits <code>ICollection&lt;T&gt;</code>, <code>IEnumerable&lt;T&gt;</code> &amp; <code>IEnumerable</code>.</p>
  
  <p>The C# predeined interface <code>ICollection&lt;T&gt;</code> inherits <code>IEnumerable&lt;T&gt;</code> &amp; <code>IEnumerable</code>.</p>
  
  <p>Given the above statements, my question is, why are the interfaces <code>IEnumerable&lt;T&gt;</code> &amp; <code>IEnumerable</code> being explicitly inherited in <code>IList&lt;T&gt;</code> becuase they are already being inherited in <code>ICollection&lt;T&gt;</code>.</p>
  
  <p>In essence, wouldn't the below suffice?</p>
  
  <p><code>public interface <code>IList&lt;T&gt;</code> : <code>ICollection&lt;T&gt;</code> { //code }
  public interface <code>ICollection&lt;T&gt;</code> : <code>IEnumerable&lt;T&gt;</code>, IEnumerable { //code }</code></p>
  
  <p>I want to know why have the interfaces been inherited explicitly while they were inherited as a part of other interface.</p>