title: Array class implementation in C#
body: <p>Going to the implementation details, I see the implementation of <code>Array</code> class as</p>
  
  <pre><code>public abstract class Array : ICloneable, IList, ICollection, IEnumerable, IStructuralComparable, IStructuralEquatable
  </code></pre>
  
  <p>Implementation of IList interface reads as</p>
  
  <pre><code>public interface IList : ICollection, IEnumerable
  </code></pre>
  
  <p>My question is, doesn't the <code>Array</code> class automatically implement <code>ICollection</code> and <code>IEnumerable</code> the moment it implements <code>IList</code>? Why are these implemented explicitly?</p>