带有随机数的C#中的2d数组

时间:2013-12-25 21:06:34

标签: c# visual-studio-2010

我想在C#中创建2d数组。大小:5对3,并插入随机数。 我试过,但这不起作用:

Random rnd = new Random();
            int[][] lala = new int[3][5];
            for(int i=0;i<3;i++)
                for(int j=0;j<4;j++)
                    lala[i][j]= rnd.Next(1, 10);

收到错误:'无效的排名说明符','或''

问题是什么?

感谢

2 个答案:

答案 0 :(得分:2)

更改阵列声明

int[,] lala = new int[3,5];

和作业操作

                lala[i,j]= rnd.Next(1, 10);

使用jagged array的2d数组语法。

或者如果你想使用锯齿状数组,你必须在第一个声明中声明最外层大小,然后在循环中声明内部大小:

Random rnd = new Random();
int[][] lala = new int[3][];
for(int i=0;i<3;i++)
{
    lala[i] = new int[5];
    for(int j=0;j<4;j++)
        lala[i][j]= rnd.Next(1, 10);
}

<强>更新

锯齿状阵列的完整代码:

Random rnd = new Random();
int[][] lala = new int[3][];
for (int i = 0; i < lala.Length; i++)
{
    lala[i] = new int[5];
    for (int j = 0; j < lala[i].Length; j++)
        lala[i][j] = rnd.Next(1, 10);
}

和2d数组

Random rnd = new Random();
int[,] lala = new int[3,5];
for (int i = 0; i < lala.GetLength(0); i++)
{
    for (int j = 0; j < lala.GetLength(1); j++)
        lala[i,j] = rnd.Next(1, 10);
}

答案 1 :(得分:1)

这是:

    Random rnd = new Random();
    int[,] lala = new int[3,5];
    for(int i=0;i<3;i++)
    {
        for(int j=0;j<5;j++)
        {
            lala[i, j]= rnd.Next(1, 10);
            Console.WriteLine("[{0}, {1}] = {2}", i, j, lala[i,j]);
        }
    }

工作样本:http://dotnetfiddle.net/4Fx9dL