【发布时间】:2010-07-22 04:36:44
【问题描述】:
我有一个类维护另一个类的对象列表。对象列表是公共属性。我想阻止用户直接添加和删除对象到这样的列表中:
MyObject.MyListProperty.Add(object);
相反,我希望他们使用将在内部进行一些处理然后将对象添加到列表的方法。
我有一些想法:
- 创建
List<T>的后代并覆盖添加和删除 - 通过属性getter返回新的list副本(list比较短,不超过30个对象)
是否有一些收藏界面没有添加和删除?
编辑:
我将选择ReadOnlyCollection<T>。原因是包装的集合可以更新,并且更改将立即在只读对象中可见(请参阅 ReadOnlyCollection<T> 和 AsReadOnly() 的 MSDN 代码示例)。这允许只读列表只创建一次。
IEnumerable 的问题是对象可以被转换回原来的List<T> 然后
直接操作。
【问题讨论】:
-
我也在找这个+1
标签: c# .net collections list