如何手动替代List<>类

时间:2016-02-19 08:55:56

标签: c# class collections

我需要替换List<>我将有4个方法的类......两个用于添加int个项目,一个来自前面,另一个来自后面,两个用于删除,一个来自前面,另一个来自后面。我的班级不应继承任何东西。

像这样......

public class MyList
{
    public void AddItemsFront(int pItem)
    {

    }

    public void AddItemsBehind(int pItem)
    {

    }

    public void DeleteItemsFront(int pItem)
    {

    }

    public void DeleteItemsBehind(int pItem)
    {

    }
}

2 个答案:

答案 0 :(得分:5)

您可以在字段中保存List<T>的实例,List<T>已经有以下方法:

public class MyList<T>
{
    private List<T> _TheList;
    public MyList()
    {
        _TheList = new List<T>();
    }
    public List<T> TheList { get { return _TheList; } set { _TheList = value; } }

    public void AddItemFront(T pItem)
    {
        TheList.Insert(0, pItem);
    }

    public void AddItemBehind(T pItem)
    {
        TheList.Add(pItem);
    }

    public void DeleteItemFront()
    {
        TheList.RemoveAt(0);
    }

    public void DeleteItemBehind()
    {
        TheList.RemoveAt(TheList.Count - 1);
    }
}

由于它是一个通用类,因此您也可以将其用于与int不同的类型。

var myList = new MyList<int>();
myList.AddItemFront(1);

答案 1 :(得分:1)

创建一个具有正确List<>类型的数据成员的类,并通过调用List<>数据成员上的相应方法来实现您的方法。您希望delete操作返回从列表中删除的对象。

这通常被称为适配器模式。 Wikipedia has a page on it