c# - 我应该返回 IEnumerable 还是 IList?

标签 c# collections ienumerable

<分区>

我希望从一个方法中返回一个有序的项目列表。我的返回类型应该是 IEnumerable 还是 IList?

最佳答案

这里有一个层次:

interface IList<T> : ICollection<T> { } 
interface ICollection<T> : IEnumerable<T> { }

您想以尽可能少的耦合为目标,因此返回 IEnumerable<T>如果足够的话。它可能会。

返回 IList<T>如果情况需要调用者获得一个可用于添加/插入/删除的列表。但即便如此,如果调用者从 IEnumerable 集合中创建自己的 List 可能会更好。

关于c# - 我应该返回 IEnumerable 还是 IList?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3180658/

相关文章:

c# - 在 C# 中使用 lambda 进行流畅的接口(interface)配置

c# - 在 C# 中将 CSS 分配给动态创建的标签

scala - 我想知道 scala 中的 list.contains() 和 set.contains() 哪个更快

c# - Winforms绑定(bind)问题

c# - 仅在一个 LINQ 表达式中获取 IEnumerable 集合的总和

c# - 延迟构建请求

c# - 如何将属性名称转换为 WPF 中的框架元素?

c# - LINQ 从两个具有相同长度的集合中选择

c# - 如何获取 IEnumerable 的基类型

c# - 有人可以想出这个枚举器的更好版本吗?