为什么要使用ICollection <t>而不是List <t>,如果我使用ICollection <t>,那么我如何使用AddRange,Insert和其他列表方法</t> </t> </t>

时间:2013-05-24 06:26:49

标签: c# .net generics collections fxcop

我正在使用FxCop工具进行代码分析,它显示了一个严重错误,例如“不要公开generice列表”,它建议不要使用列表对象,而是尝试使用ICollection。

我尝试用ICollection替换List,但是我有很多地方插入和添加范围方法,无论如何我都需要它们来实现我的业务逻辑

“那么如何在没有类型转换或使用ToList()方法的Icollection上使用Insert,AddRange和其他列表方法,因为如果我必须使用这些方法,那么为什么我应该用ICollection替换列表”< /强>

如果您不明白我的问题,请不要将任何重复标记重复。

1 个答案:

答案 0 :(得分:1)

暴露List并不是一个好习惯,因为你可以用Add这样的方法修改原始集合,最好是公开IEnumerable这个界面不允许更改集合,我的优势在于你将保持逻辑管理你的集合在一个地方