Pourquoi IList hérite à nouveau de IEnumerable et IEnumerable

J’ai jeté un coup d’oeil sur IList et ICollection sur MSDN par hasard, et constate que la définition de ces deux interfaces est la suivante:

 public interface ICollection : IEnumerable, IEnumerable public interface IList : ICollection, IEnumerable, IEnumerable 

Notez que ICollection hérite de IEnumerable et IEnumerable , ce n’est pas grave. IList hérite de ICollection , mais pourquoi IList doit encore hériter de IEnumerable et IEnumerable ?

Y a-t-il une raison à cela?

La documentation est générée de cette manière afin que vous puissiez voir quelles interfaces un type implémente sans avoir à suivre des liens transitifs à travers la hiérarchie d’inheritance d’interface.