如何使用泛型集合实现自定义类型安全集合?

时间:2012-11-15 13:45:12

标签: c# collections generic-collections collectionbase custom-collection

我使用了从CollectionBase类派生的强类型集合,现在我想将其更改为从类型安全的泛型集合继承。有人建议继承List<T>,有些人建议使用Collection<T>。我想做的是:

1)我有一个自定义类,我正在创建一个只包含该自定义类实例的集合。

2)我有一些属性和方法,我喜欢自定义集合类。例如,它应该具有Id属性,或者它应该具有IsBlahBlah()方法。

我该如何处理?当我从CollectionBase类派生时,我使用InnerList属性来访问元素。如果我选择使用Items,我应该使用Collection<T>属性吗?

正在做类似的事情:

public class MyCustomCollection : Collection<MyCustomClass>
{
    public int ExtraProperty { get; set; }

    public bool IsFortyTwo(MyCustomClass) { }
}

正确的方法?它是否可以正常使用而不会干扰Collection<T>

中的方法

额外的问题:当我在Google上搜索“强类型收藏集”时,它始终显示包含CollectionBase类的结果。 强类型集合 Typesafe集合之间有什么区别?

1 个答案:

答案 0 :(得分:1)

我认为需要像这样实施

public class MyCustomCollection
{
    private Collection<MyCustomClass> _collection = new Collection<MyCustomClass>();
    public int ExtraProperty { get; set; }
    public bool IsFortyTwo(MyCustomClass) { }
}