首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >选择什么采集接口?

选择什么采集接口?
EN

Stack Overflow用户
提问于 2011-07-23 05:48:48
回答 2查看 95关注 0票数 4

系统首选的采集接口是什么?我所说的系统指的是存储库、服务等,所以我需要选择IEnumerable、ICollection、IList或者甚至是列表。

我想从理论上讲,使用IEnumerable会更好。但是它的使用不太方便:例如,我必须使用GetElementAt方法而不是索引器。

我目前的选择是IList,但我对这个决定持怀疑态度。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-07-23 05:52:37

这实际上取决于您希望为存储库、服务等的消费者提供哪种类型的访问权限。

如果您只打算让使用者读取整个集合,请使用IEnumerable<T> (没有可用的写类型方法)。

如果您希望消费者直接添加到集合中,那么ICollection<T>中的方法将为他们提供此功能。

通常,我会尽可能频繁地将集合公开为IEnumerable<T>。当用户想要向集合中添加一些东西时,他们必须调用一个单独的方法,而不是直接写入集合本身。它使您有机会验证输入,执行其他检查等。

票数 5
EN

Stack Overflow用户

发布于 2011-07-23 05:51:29

如果你想允许索引器访问,你应该使用IList<T>。一般规则是使用仍然满足所有使用要求的最不特定的类型。在你的例子中,这听起来像是一个列表。(当然,IList<T>没有List<T>那么具体)

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6796483

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档