我应该使用IEnumerable或IList?

时间:2010-07-12 12:58:30

标签: c# ienumerable ilist

任何人都可以告诉我什么时候应该使用它。

例如,我想当我想访问集合的.Count或单个项目时,我应该使用IList,对吗?

谢谢。

3 个答案:

答案 0 :(得分:60)

一般来说,您应该尝试使用最适合您目的的特定类型。 IEnumerable的具体情况不如IListIList实施IEnumerable),所以除非您想要IList特定的内容(例如Count, ,或者AddDelete等),我会使用IEnumerable

保留IEnumerable的一个好处是你可以编写迭代器方法来返回这个类型(查看“yield return”和迭代器方法,如果你不熟悉它们)。这允许您为循环编写非常节省内存的“管道”。

答案 1 :(得分:22)

当您想要遍历集合中的项目时,可以使用IEnumerable。

IList是您想要无序添加,删除和访问列表内容的时间。

IList vs IEnumerable for Collections on Entities

http://www.informit.com/guides/content.aspx?g=dotnet&seqNum=722

答案 2 :(得分:6)

当您需要通过索引访问集合,添加和删除元素等时,您应该使用 IList ,当您需要枚举您的集合时, IEnumerable

一个非常简单的答案,如果你要描述你的情景,我可以扩展它。