IEnumerable和ICollection的关系
这两天使用reshaper,感觉很好,之前不知道怎么用,现在觉得里面有很多要学习的东西,里面经常提示让我将IList<T>转化为IEnumerable<T>接口,开始不是很明白,看了一下其实我使用IList<T>也就是使用的foreach这个方法,没必要把接口限定的那么小。
ICollection< T> 接口是 System.Collections.Generic 命名空间中类的基接口。
ICollection< T> 接口扩展 IEnumerable< T> ; IDictionary< TKey, TValue> 和 IList< T> 是扩展ICollection< T> 的更专用接口。 IDictionary< TKey, TValue> 实现是键/值对的集合,如 Dictionary< TKey, TValue> 类。 IList< T> 实现是值的集合,并且可以按索引访问它的成员,如 List< T> 类。
如果 IDictionary< TKey, TValue> 接口和 IList< T> 接口都不能满足所需集合的要求,则从ICollection< T> 接口派生新集合类以提高灵活性。