System.Collections与System.Collections.ObjectModel

时间:2010-06-25 13:13:14

标签: c# .net collections

System.Collections.ObjectModel中似乎也有某些集合类。这两个名称空间下的集合之间有什么区别,我们应该使用System.Collections.ObjectModel?

3 个答案:

答案 0 :(得分:8)

来自MSDN

  

System.Collections.ObjectModel   namespace包含可以的类   用作对象中的集合   可重用库的模型。使用这些   属性或方法时的类   回归收藏。

另见The reason why Collection, ReadOnlyCollection, and KeyedCollection were moved to System.Collections.ObjectModel namespace

答案 1 :(得分:0)

一个明显的区别是System.Collections.ObjectModel命名空间包含泛型 只读集合(即没有添加,删除和清除方法等)。

答案 2 :(得分:0)

System.Collections.ObjectModel类可用于将集合公开给外部世界。 (外部世界我的意思是代码不能用您的代码进行版本化。)

因此,在代码中使用泛型集合类,但如果要将其公开给外部世界,请将其包装在Collection,ReadOnlyCollection或ObservableCollection中。

要将集合包装为键控集合,KeyedCollection可用作帮助程序的基类。