IEnumerable <t> vs IReadOnlyList <t> </t> </t>

时间:2015-01-09 06:52:25

标签: .net ienumerable

选择IEnumerable<T>IReadOnlyList<T>作为返回参数类型或输入参数类型有什么区别?

IEnumerable<T>提供.Count.ElementAtIReadOnlyList<T>

1 个答案:

答案 0 :(得分:14)

IEnumerable<T>表示某些数据的仅向前游标。您可以从集合的开头到结尾,一次查看一个项目。

IReadOnlyList<T>表示可读的随机访问集合。

IEnumerable<T>更为通用,因为它可以表示动态生成的项目,通过网络传入的数据,来自数据库的行等等。另一方面,IReadOnlyList<T>基本上只代表-memory collections。

如果您只需按顺序查看每个项目,那么IEnumerable<T>是最佳选择 - 它更为通用。

我建议实际查看C ++标准模板库 - 他们对各种类型的迭代器的讨论实际上很好地映射到你的问题。