2008-10-14 35 views
0

我发现了许多关于IEnumeratorIEnumerable,ICollection,IList及其通用对应物的文件和建议。可悲的是,我还没有找到解释整个接口层次结构的教程或书籍,这些接口的通用实现是每种类型的最佳用法。什么是关于泛型及其接口的最佳资源?

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

+0

你应该重新标记这是集合。泛型并不总是用于集合。 – 2008-12-16 06:17:16

回答

3

我明白他们的主要方式就是看他们的界面。

继承是这样的:

的IList:ICollection的:IEnumerable的

当你仰望的IEnumerable的接口,注意它只有能够循环通过一堆物品所必需的最低限度。它没有计数或其他任何东西。 IEnumerable运作良好,即使你正在看的只是一条流过电线的流。

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

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

0

你只是错过了一个:)

IDictionary的:IList中:ICollection的:IEnumerable的

+0

IDictionary它与其他接口有点不同 - 它似乎只是一个键/值对(与ICollection >相同的功能)的集合,除非我错了。 – alexandrul 2008-10-14 20:30:08

相关问题