选择IEnumerable<T>vs IReadOnlyList<T>作为返回参数类型或输入参数类型有什么区别?
IEnumerable<T>提供.Count和.ElementAt暴露的内容IReadOnlyList<T>
Chr*_*res 14
IEnumerable<T>表示某些数据上的仅向前光标.您可以从集合的开头到结尾,一次查看一个项目.
IReadOnlyList<T> 表示可读的随机访问集合.
IEnumerable<T>更通用的是,它可以表示动态生成的项目,通过网络传入的数据,来自数据库的行等IReadOnlyList<T>,另一方面基本上只代表内存中的集合.
如果您只需按顺序查看每个项目,那么这IEnumerable<T>是一个更好的选择 - 它更通用.
我建议实际查看C++标准模板库 - 他们对各种类型的迭代器的讨论实际上很好地映射到你的问题.