【发布时间】:2013-05-19 16:39:39
【问题描述】:
我正在使用 FxCop 工具进行代码分析,它显示了一个严重错误,例如“不要公开泛型列表”,它建议不要使用列表对象,而是尝试使用 ICollection。
我试图用 ICollection 替换 List,但是我有很多地方插入和添加范围方法,无论如何我都需要它们来实现我的业务逻辑
“那么我如何在 Icollection 上使用 Insert、AddRange 和其他列表方法而不使用类型转换或使用 ToList() 方法,因为如果我必须使用这些方法,那么为什么我应该用 ICollection 替换列表”
如果您不了解我的问题,请不要标记任何重复的内容。
【问题讨论】:
-
还有
IList -
你能说明为什么你认为这不是另一个问题的重复吗?
-
IList<T> 接口继承了
ICollection<T>并声明了Add、Insert、Remove方法和类似的方法。AddRange不包含在IList<T>中,但是对于这些情况,您也许可以进行显式转换?或者,您可以实现AddRange(this IList<T> destination, IEnumerable<T> source)扩展方法来隐藏强制转换。
标签: c# .net generics collections fxcop