我应该使用IEnumerable或IList?
任何人都可以告诉我何时应该使用它们。
例如,我想当我想访问集合的.Count或单个项目时,我应该使用IList,对吗?
谢谢。
一般来说,您应该尝试使用适合您目的的最不具体的类型。 IEnumerable
不像IList
( IList
实现IEnumerable
)那么具体,所以除非你想要IList
特有的东西(比如你建议的Count
,或者可能是Add
, Delete
等),我会使用IEnumerable
。
保留IEnumerable
一个好处是你可以编写迭代器方法来返回这个类型(查看“yield return”和迭代器方法,如果你不熟悉它们)。 这允许您为循环编写非常节省内存的“管道”。
当您想要遍历集合中的项目时,可以使用IEnumerable。
IList是您想要无序添加,删除和访问列表内容的时候。
IList vs IEnumerable实体集合
http://www.informit.com/guides/content.aspx?g=dotnet&seqNum=722
当你需要通过索引访问集合,添加和删除元素等时,你应该使用IList ,当你需要枚举你的集合时,你应该使用IEnumerable 。
一个非常简单的答案,如果您将描述您的情景,我可以扩展它。