66

谁能告诉我什么时候应该使用。

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

谢谢你。

4

3 回答 3

115

一般来说,您应该尝试使用适合您目的的最不具体的类型。IEnumerableIList( IListimplements IEnumerable) 更具体,所以除非你想要一些特定的东西IList(比如Count你建议的,或者也许Add,Delete等),否则我会使用IEnumerable.

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

于 2010-07-12T13:01:16.250 回答
37

当您想要循环访问集合中的项目时,您可以使用 IEnumerable。

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

实体集合的 IList 与 IEnumerable

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

于 2010-07-12T13:01:05.827 回答
11

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

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

于 2010-07-12T13:01:29.770 回答