Boa noite! A classe List implementa as seguintes interfaces: public class List : IList, ICollection, IEnumerable, IEnumerable, IList, ICollection, IReadOnlyList, IReadOnlyCollection. A minha pergunta é: Porque a classe List tem que implementar por exemplo ICollection e IEnumerable se ela já implementa IList que por sua vez implementa ICollection e que por sua vez implementa IEnumerable? Pela regra que entendo se eu tenho uma interface "B", que implementa/estende uma interface "A", e existe uma classe "C", que implementa a interface "B", logo "C" também implementa a interface "A", ou seja, se nas duas interfaces (A e B) existirem métodos, esses métodos terão que ser implementados pela classe (C). Então não entendi por que toda a hierarquia das Collections tem que ser implementada na classe List.