为多维数组赋值的更好方法

时间:2012-02-02 22:12:55

标签: c# arrays

过去一段时间必须回答这个问题,但我无法以某种方式找到我想要的方式。 我想制作一个7 x 2的数组维度;

离)

{0,0} {0,0} {0,0} ... ... .. .

int [,] myArray = new int[7,2];

然后我尝试将数组的每个维度视为一维数组。 所以我试着以这种方式为数组赋值......

int[0] = new int{ 1, 2};

我认为应该看起来像...... {1 , 2} {0 , 0} ... .. . 但是我得到了一个错误。

我认为这是由于我对数组类的理解不完全。

3 个答案:

答案 0 :(得分:5)

你想要的是锯齿状数组,而不是多维数组。基本上,是一个数组数组:

int[][] myArray = new int[7][];
int[0] = new int {1, 2};

第二个“维度”数组的长度不限于2,但您需要手动强制执行。这就是为什么它们在视觉上称为锯齿状,它们可以有不同的长度:

{
  { 3, 2 },
  { 1, 8, 3 },
  { 9, 6, 3, 4 },
  { 4, 2, 8 },
  { 4, 9, 3, 4, 5 },
  { 2, 2 }
}

所有关于C#中的数组都在这里:http://msdn.microsoft.com/en-us/library/aa288453(v=vs.71).aspx

答案 1 :(得分:2)

以下是您如何为您的案例做到这一点:

int [,] arr = new [,] 
{
    {0,1},
    {1,2}
};

答案 2 :(得分:1)

你可以使用Chris Shain的命题,或者继续使用多维数组的方法。

初始化此类数组

int [,] myArray = new int[3,2] {{1,2},{3,4},{5,6}};

或省略尺寸参数

int [,] myArray = new int[,] {{1,2},{3,4},{5,6}};

您遇到的问题是访问数组元素,在多维数组中,您可以直接访问该元素,例如

myArray[1,1] = 7; 

会将1改为7;

所有这一切以及更多内容都可以在Arrays的文档中找到。