返回ICollection <T>而不是List <T>的真正好处是什么?

Mar*_*tin 15 .net c# ienumerable icollection

我读过一些博客文章提到,对于公共API,我们应该总是返回ICollection(或IEnumerable)而不是List.返回ICollection而不是List的真正优势是什么?

谢谢!

重复:List(T)和Collection(T)有什么区别?

Sov*_*iut 2

当您迭代它时,枚举器一次仅返回一个实体。这是因为它使用了收益回报。另一方面,集合返回整个列表,要求列表完全存储在内存中。

简而言之,枚举器更轻、更高效。