这个问题已经在这里有了答案 :
List 或IList [关闭] (18个答案)
5年前关闭。
根据FXCop的介绍,List不应在API对象模型中公开。为什么认为这是不良做法?
我同意这里的驼鹿:这List<T>是一个不受约束的肿物体,里面有很多“行李”。
List<T>
幸运的是,解决方案很简单:IList<T>改为公开。
IList<T>
它公开了具有大多数List<T>方法的准系统接口(诸如之类的东西除外AddRange()),并且不会将您限制为特定List<T>类型,从而使您的API使用者可以使用自己的自定义实现IList<T>。
AddRange()
为了获得更大的灵活性,请考虑IEnumerable<T>在适当时将某些集合暴露给。
IEnumerable<T>