【问题标题】:What is your best resource about generics and their interfaces? [closed]关于泛型及其接口的最佳资源是什么? [关闭]
【发布时间】:2008-10-14 18:53:09
【问题描述】:

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

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

【问题讨论】:

  • 你应该重新标记这是收藏。泛型并不总是用于集合。

标签: c# generics collections


【解决方案1】:

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

继承是这样的:

IList : ICollection : IEnumerable

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

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

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

【讨论】:

    【解决方案2】:

    你错过了一个:)

    IDictionary:IList:ICollection:IEnumerable

    【讨论】:

    • IDictionary 它与其他接口有点不同 - 它似乎只是键/值对的集合(与 ICollection> 功能相同),除非我是错了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-30
    • 2010-09-09
    • 2010-09-09
    • 1970-01-01
    相关资源
    最近更新 更多