Q:

Why does List implement so many interfaces?

List<T> derives from the following interfaces:  
public class List<T> : IList<T>, ICollection<T>, IEnumerable<T>, IList, ICollection, IEnumerable

I just wonder, why it needs all these interfaces (in the class declaration)?
IList itself already derives from ICollection<T>, IEnumerable<T> und IEnumerable.
So why is the following not enough?
public class List<T> : IList<T>, IList

I hope you can solve my confusion.

A:

Indeed List<T> would have just implemented like this
public class List<T> : IList<T>, IList

It is the reflector or such decompiler shows you all the interfaces in inheritance.
Try this
public class List2<T> : IList<T>

I just compiled this and viewed in reflector, which shows like this
public class List2<T> : IList<T>, ICollection<T>, IEnumerable<T>, IEnumerable

