0

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

关于泛型、它们的接口以及 C# 中的推荐用法示例,您最好的知识来源是什么?

4

2 回答 2

3

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

继承是这样的:

IList:ICollection:IEnumerable

当您查看 IEnumerable 的接口时,请注意它仅具有能够遍历一堆项目所需的最低限度。它没有计数或其他任何东西。即使您正在查看的只是通过电线传输的流,IEnumerable 也能很好地工作。

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

IList 添加了按索引获取和设置集合成员的功能。当项目的顺序很重要时使用它。当你有索引时,你可以做一些事情,比如交换第 4 和第 5 项来改变它们的顺序。

于 2008-10-14T19:19:16.677 回答
0

你只是错过了一个:)

IDictionary:IList:ICollection:IEnumerable

于 2008-10-14T20:23:07.250 回答