首页 > 解决方案 > 从堆栈/队列中弹出堆栈

问题描述

我的问题是关于如何从队列中取出堆栈。该程序应该通过生成堆栈(如下所示)来工作,让这些堆栈中塞满数据(如下所示),然后卸载并显示其中的数据。现在它只是向我抛出一个 CS1061 异常。例如, 5 在那里,实际代码是从数组中选择一个随机字符串。

    public void newCustomers()
    {
        var customer = new Stack();
        store.Enqueue(customer);
    }
    public void Shop()
    {
        var customer = store.Dequeue();
        customer.Push(5);
        //^currently this doesn't work. I'm assuming the typing for customer is wrong.
        store.Enqueue(customer);
    }

CS1061

严重性代码描述项目文件行抑制状态错误 CS1061“对象”不包含“推送”的定义,并且找不到接受“对象”类型的第一个参数的可访问扩展方法“推送”(您是否缺少 using 指令或装配参考?)

标签: c#stackqueue

解决方案


您正在使用非泛型Queue类。该Dequeue()方法返回一个object您必须转换为的Stack

var customer = (Stack)store.Dequeue();
customer.Push(5);

我建议改用通用队列类Queue<T>


推荐阅读