From mscorlib.dll:
public interface IList<T> : ICollection<T>, IEnumerable<T>, IEnumerable
{..}
public class List<T> : IList<T>, ICollection<T>, IEnumerable<T>, IEnumerable, IList, ICollection, IReadOnlyList<T>, IReadOnlyCollection<T>
{...}
Why List<T>
have to explicitly derived from ICollection<T>, IEnumerable<T>, IEnumerable,
in addition of derived from IList<T>
which itself derived from ICollection<T>, IEnumerable<T>, IEnumerable
?
The object browser or Reflector or similar don't have the source code, they have metadata to work with. Its not easy to know inspecting that information if a type implements directly an interface or not, so the easy option, because the ultimate goal is documentation, is to simply show all interfaces even if some are redundant.
For more information, read this.