我找到了许多关于IEnumeratorIEnumerableICollectionIList及其通用对应物的文档和建议。遗憾的是,我还没有找到解释整个接口层次结构的教程或书籍,这些接口的通用实现是每种类型的最佳用法。

关于泛型,它们的界面以及C#中推荐用法的例子,你最了解的是什么?

有帮助吗?

解决方案

我了解它们的主要方式就是查看它们的界面。

继承是这样的:

IList:ICollection:IEnumerable

当你查找IEnumerable的界面时,请注意它只有最低限度才能循环遍历一堆项目。它没有计数或其他任何东西。 IEnumerable工作得很好,即使你正在看的只是一条通过电线的流。

ICollection添加了Count。如果你正在实现某种类型的集合,并且如果很容易知道它的大小,那么你应该实现它。在这种情况下,通用接口有点不同。 <!> ICollection的LT; <!>ŤGT;还有通过添加和删除成员来修改集合的方法。无序集合将是ICollection的良好候选者。

IList添加了通过索引获取和设置集合成员的功能。当项目的顺序很重要时使用此选项。当您有索引时,您可以执行交换第4和第5项以更改其顺序的操作。

其他提示

你错过了一个:)

IDictionary :IList:ICollection:IEnumerable

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top