System.Collections.ObjectModel中似乎也有某些集合类。这两个名称空间下的集合之间有什么区别,我们应该使用System.Collections.ObjectModel?
答案 0 :(得分:8)
来自MSDN:
System.Collections.ObjectModel namespace包含可以的类 用作对象中的集合 可重用库的模型。使用这些 属性或方法时的类 回归收藏。
答案 1 :(得分:0)
一个明显的区别是System.Collections.ObjectModel
命名空间包含泛型
只读集合(即没有添加,删除和清除方法等)。
答案 2 :(得分:0)
System.Collections.ObjectModel类可用于将集合公开给外部世界。 (外部世界我的意思是代码不能用您的代码进行版本化。)
因此,在代码中使用泛型集合类,但如果要将其公开给外部世界,请将其包装在Collection,ReadOnlyCollection或ObservableCollection中。
要将集合包装为键控集合,KeyedCollection可用作帮助程序的基类。