关于 C# 锯齿状数组动态自动递增数组数组未正确打印值

Regarding C# Jagged array dynamic auto incrementing array array not printing values properly

我正在处理自动递增数组,但此逻辑对于锯齿状数组无法正常工作:

namespace TESETER
{
    class Program
    {
        static void Main(string[] args)
        {
            int q, moj = 0;
            int[][] arr = new int[1][];
            int[][] b;
            b = arr;
            arr[0] = new int[1];
            b[0] = arr[0];
            while (moj < 3)
            {
                Console.WriteLine("interger");
                int.TryParse(Console.ReadLine(), out q);
                if (moj < 1)
                { arr[0][0] = q; moj++; }
                else
                {
                    moj++; arr[0] = new int[moj];
                    for (int i = 0; i < moj - 1; i++)
                    {
                        arr[0][i] = b[0][i];
                    }
                    arr[0][moj - 1] = q;
                    b = arr;
                    b[0] = arr[0];
                }
            }
            Console.WriteLine(arr[0][0]);
            Console.WriteLine(arr[0][1]);
            Console.WriteLine(arr[0][2]);
            Console.ReadLine();
        }
    }
}

输出: 整数 7 整数 8 整数 9 009

如果输入是 789,请帮助我想要输出 789

我建议使用 List<int> 而不是锯齿状数组。当您向其中添加新元素时,它会自动调整大小。

如果您必须在此处使用交错数组,请不要使用赋值来保留以前的值。请改用 Array.Copy

using System;
namespace TESETER
{
    class Program
    {
        static void Main(string[] args)
    {
        int q, moj = 0;
        int[][] arr = new int[1][];
        int[][] b = new int[1][];
        // b = arr;
        // arr[0] = new int[1];
        // Array.Copy(arr[0], b[0]);
        while (moj < 3)
        {
            Console.WriteLine("interger");
            int.TryParse(Console.ReadLine(), out q);
            if (moj < 1)
            { arr[0][0] = q; moj++; }
            else
            {
                moj++; arr[0] = new int[moj];
                for (int i = 0; i < moj - 1; i++)
                {
                    arr[0][i] = b[0][i];
                }
                arr[0][moj - 1] = q;
                Array.Copy(arr, b);
                //b[0] = arr[0];
            }
        }
        Console.WriteLine(arr[0][0]);
        Console.WriteLine(arr[0][1]);
        Console.WriteLine(arr[0][2]);
        Console.ReadLine();
    }
}
}