首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >我应该从函数中返回一个数组还是一个集合?

我应该从函数中返回一个数组还是一个集合?
EN

Stack Overflow用户
提问于 2009-03-02 16:00:11
回答 11查看 6K关注 0票数 16

当从一个函数返回多个相同类型的对象时,首选的容器类型是什么?

返回一个简单的数组(如MyType[])是违反良好实践的,还是应该将其包装在某个通用容器(如ICollection)中?

谢谢!

EN

回答 11

Stack Overflow用户

回答已采纳

发布于 2009-03-02 16:02:48

Eric Lippert在这方面有一个很好的article。如果你不想读整篇文章,答案是:返回接口。

票数 18
EN

Stack Overflow用户

发布于 2009-06-24 01:20:52

使用yield return返回IEnumerable<T>

票数 13
EN

Stack Overflow用户

发布于 2009-03-02 16:06:50

如果返回的集合是只读的,这意味着您永远不希望更改集合中的元素,则使用IEnumerable<T>。这是不可变(至少从枚举本身的角度来看)元素的只读序列的最基本表示。

如果您希望它是一个可以更改的自包含集合,那么可以使用ICollection<T>IList<T>

例如,如果您希望返回搜索特定文件集的结果,则返回IEnumerable<FileInfo>

但是,如果您希望公开目录中的文件,则需要公开IList/ICollection<FileInfo>,因为您可能希望更改集合的内容。

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

https://stackoverflow.com/questions/602860

复制
相关文章

相似问题

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