Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/300.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何手动替代列表类_C#_Class_Collections - Fatal编程技术网

C# 如何手动替代列表类

C# 如何手动替代列表类,c#,class,collections,C#,Class,Collections,我需要做替代列表类,我将有4个方法。。。两个用于添加int项,一个来自前面,另一个来自后面,两个用于删除,一个来自前面,另一个来自后面。我的类不应该继承任何内容 像这样的 public class MyList { public void AddItemsFront(int pItem) { } public void AddItemsBehind(int pItem) { } public void DeleteItemsFron

我需要做替代列表类,我将有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)
    {

    }
}

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


这通常被称为适配器模式

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


这通常被称为适配器模式

您可以在字段中保存列表的实例,列表已包含以下方法:

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);
    }
}

您可以在字段中保存列表的实例,列表已包含以下方法:

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);
    }
}

你想达到什么目的?这叫做德克。嗯。。。。当你陷入困境时,为什么不开始写你的课程并提出具体的问题呢?实际上你的问题本身就没有问题,我想没有人会为你写这门课。是的,我同意。但我不知道如何开始。。。任何伪代码都可以@andykorneyev将值存储在数组中。跟踪头部索引和尾部索引。阵列已满时调整其大小。这是基本要点。您可以随时查看队列的源代码,以了解它们是如何实现单端队列的。把它变成一个双端队列是很简单的。你想实现什么?这被称为Deque。嗯。。。。当你陷入困境时,为什么不开始写你的课程并提出具体的问题呢?实际上你的问题本身就没有问题,我想没有人会为你写这门课。是的,我同意。但我不知道如何开始。。。任何伪代码都可以@andykorneyev将值存储在数组中。跟踪头部索引和尾部索引。阵列已满时调整其大小。这是基本要点。您可以随时查看队列的源代码,以了解它们是如何实现单端队列的。把它变成一个双端队列很简单。太好了!投票赞成@太完美了!投票赞成@提姆