Программа, управляемая меню, для операций с очередями C# не работает. Как мне это исправить?

#c# #queue

Вопрос:

Мои операции с очередями в программе, управляемой с помощью меню C#, за исключением постановки в очередь, не работают. И если я снова встану в очередь, в текущем статусе очереди отобразится только вновь введенное значение без ранее поставленного в очередь значения. А другие операции прямо-таки не работают. Пожалуйста, помогите.

Вот мой текущий код.

 using System;
using System.Collections;
using System.Collections.Generic;

namespace Collections{

    class Program{
        
          public static void menu(){
          Console.WriteLine("Menu:");
          Console.WriteLine("Enqueue (E)");
          Console.WriteLine("Dequeue (D)");
          Console.WriteLine("Peek (P)");
          Console.WriteLine("Show (S)");
          Console.WriteLine("Exit (X)");
    }
    
    public static void display(){
        string b;
        int val;
        string a;
        Queue q = new Queue();
        a = Console.ReadLine();
        
        switch (a)
        {
            case "E":
            {
                Console.WriteLine("Enter the value to be Enqueued:");
                b = Console.ReadLine();
                val = Convert.ToInt32(b);
                q.Enqueue(val);
                Console.WriteLine("The current queue is:");
                foreach (object i in q)
                    {
                       Console.WriteLine(i   " ");
                    }
                menu();
                break;
            }
            case "D":
            {
                q.Dequeue();
                break;
            }
            case "P":
            {
                q.Peek();
                break;
            }
            case "S":
            {
                foreach (object i in q)
                    {
                       Console.WriteLine(i   " ");
                    }
                    break;
            }
        }
        display();
    }
    public static void Main(string[] args)  
    {
        string b;
        int val;
        string a;
        Queue q = new Queue();
        menu();
        display();

    }
}
}
 

Комментарии:

1. Возможно, вам захочется проследить за простым вводным уроком по c#. Вам нужно понять разницу между глобальными и локальными переменными и то, как они работают. Что касается того, что происходит в вашем коде, вы сбрасываете свою очередь.