I was looking at the metadata generated for IDictionary<TKey, TValue> interface and I noticed it implements
public interface IDictionary<TKey, TValue> : ICollection<KeyValuePair<TKey, TValue>>, IEnumerable<KeyValuePair<TKey, TValue>>, IEnumerable
Isn't this redundant? Looking at the metadata of ICollection<T> it shows that it already implements IEnumerable<T>, IEnumerable
And why does IEnumerable<T> implments IEnumerable, while ICollection<T> doesn't implement ICollection?