C# 存储用户';s输入的数组并显示它

C# 存储用户';s输入的数组并显示它,c#,arrays,queue,C#,Arrays,Queue,因此,我有一个简单的程序,我已经设置好,要求用户输入数组大小,然后让他们输入元素,然后打印它们,我想设置一个队列,这样它可以打印整个数组,例如 历史 1 2 3 4//数组的长度 3 4 5 6//这一轮的用户猜测 此后,每次用户重新输入阵列时,该阵列也会显示在历史记录中 历史 1 2 3 4//数组的长度 3 4 5 6//这一轮的用户猜测 2 6 7 8//用户第二次输入 使用系统; 使用System.Collections.Generic; 使用System.Linq; 使用系统文本;

因此,我有一个简单的程序,我已经设置好,要求用户输入数组大小,然后让他们输入元素,然后打印它们,我想设置一个队列,这样它可以打印整个数组,例如

历史

1 2 3 4//数组的长度 3 4 5 6//这一轮的用户猜测

此后,每次用户重新输入阵列时,该阵列也会显示在历史记录中

历史

1 2 3 4//数组的长度 3 4 5 6//这一轮的用户猜测 2 6 7 8//用户第二次输入


使用系统;
使用System.Collections.Generic;
使用System.Linq;
使用系统文本;
使用System.Threading.Tasks;
名称空间随机检验
{
班级计划
{
公共int n;
公共int[]用户数组;
公共国际一级;
公众参与;
公共int rear=-1;
公共int-front=-1;
公共历史;
公共图书馆
{
Console.WriteLine(“请输入数组的长度”);
n=Convert.ToInt32(Console.ReadLine());
UserArray=newint[n];
历史=新整数[n];
做
{
对于(i=0;i
}


这只是一个快速的临时程序,正如你所看到的,我已经尝试了排队,它可以工作,但每次只打印用户数组的第一个元素。不幸的是,这就是我不知道如何实现我在文章开头所说的内容的地方。我想坚持这种创建队列的方法,我不想使用queue类,我的想法是保持它干净和简单


非常感谢。

很抱歉我之前的恶意评论。我想这可能符合你的水平。。。快乐编码

public class Program
{
    static void Main(string[] args)
    {
        (new Program()).Ask();
    }

    private void Ask()
    {
        string history = "";

        while (true)
        {
            Console.Write("Len > ");
            int len = int.Parse(Console.ReadLine());

            int[] arr = new int[len];
            for (int i = 0; i < len; i++)
            {
                Console.Write("El{0} > ", i);
                arr[i] = int.Parse(Console.ReadLine());
            }

            Console.WriteLine();
            string str = string.Join(",", arr);
            Console.WriteLine("Arr > {0}", str);

            Console.WriteLine("His > {0}", history);
            history += string.Format("[{0}] ", str);

            Console.WriteLine("Again?");
            if (Console.ReadLine().Length == 0)
                break;
            Console.WriteLine();
        }
    }
}
公共类程序
{
静态void Main(字符串[]参数)
{
(新程序()).Ask();
}
私人秘书处
{
字符串历史=”;
while(true)
{
控制台。写入(“Len>”;
int len=int.Parse(Console.ReadLine());
int[]arr=新的int[len];
对于(int i=0;i”,i);
arr[i]=int.Parse(Console.ReadLine());
}
Console.WriteLine();
string str=string.Join(“,”,arr);
Console.WriteLine(“Arr>{0}”,str);
Console.WriteLine(“His>{0}”,history);
history+=string.Format(“[{0}]”,str);
控制台。WriteLine(“又来了?”);
if(Console.ReadLine().Length==0)
打破
Console.WriteLine();
}
}
}

很抱歉打断你,但这里没有干净和简单的东西:/@MikkoViitala我说干净和简单的时候,我的意思是说,不使用特殊的C#运算符或方法。最好的选择是重新思考和重做,一条评论中包含的内容太多了。没关系,谢谢你,我明天会尝试一下。几天来,我一直在努力让它发挥作用。但我想这只是一个学习的过程。是的,这就是我为了展示而需要的,但我的想法是,它每次都存储历史,这样历史就会建立起来。那就是我被卡住了。我想我还有最后一个问题,那就是有没有一种不用.join和.format就可以做到这一点的方法,因为我更想知道它是如何工作的,而不是使用特殊的c#方法。当然,你可以用很多方法来做事情。但这些不是“特殊”的方法,而是非常基本的方法。使用join,您可以从数组中获取人类可读的格式,并使用该格式定义您希望如何格式化内容。如果只使用数组,则更复杂、更容易出错,更不用说可读性较差了。
public class Program
{
    static void Main(string[] args)
    {
        (new Program()).Ask();
    }

    private void Ask()
    {
        string history = "";

        while (true)
        {
            Console.Write("Len > ");
            int len = int.Parse(Console.ReadLine());

            int[] arr = new int[len];
            for (int i = 0; i < len; i++)
            {
                Console.Write("El{0} > ", i);
                arr[i] = int.Parse(Console.ReadLine());
            }

            Console.WriteLine();
            string str = string.Join(",", arr);
            Console.WriteLine("Arr > {0}", str);

            Console.WriteLine("His > {0}", history);
            history += string.Format("[{0}] ", str);

            Console.WriteLine("Again?");
            if (Console.ReadLine().Length == 0)
                break;
            Console.WriteLine();
        }
    }
}