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