我找到了许多关于IEnumerator
、IEnumerable
、及其通用对应物ICollection
的文档和建议。IList
遗憾的是,我还没有找到解释整个接口层次结构、这些接口的通用实现以及每种类型的最佳用法的教程或书籍。
关于泛型、它们的接口以及 C# 中的推荐用法示例,您最好的知识来源是什么?
我找到了许多关于IEnumerator
、IEnumerable
、及其通用对应物ICollection
的文档和建议。IList
遗憾的是,我还没有找到解释整个接口层次结构、这些接口的通用实现以及每种类型的最佳用法的教程或书籍。
关于泛型、它们的接口以及 C# 中的推荐用法示例,您最好的知识来源是什么?
我理解它们的主要方式就是查看它们的界面。
继承是这样的:
IList:ICollection:IEnumerable
当您查看 IEnumerable 的接口时,请注意它仅具有能够遍历一堆项目所需的最低限度。它没有计数或其他任何东西。即使您正在查看的只是通过电线传输的流,IEnumerable 也能很好地工作。
ICollection 添加计数。如果您正在实现某种集合,并且很容易知道它的大小,那么您应该实现它。在这种情况下,通用接口有点不同。ICollection<T> 还具有通过添加和删除成员来修改集合的方法。无序集将是 ICollection 的良好候选者。
IList 添加了按索引获取和设置集合成员的功能。当项目的顺序很重要时使用它。当你有索引时,你可以做一些事情,比如交换第 4 和第 5 项来改变它们的顺序。
你只是错过了一个:)
IDictionary:IList:ICollection:IEnumerable