如何获取二维数组的行或列

时间:2017-03-16 11:01:37

标签: c#

我想知道如何获得二维数组的行,如

int [3,3] a = ****

我尝试了[0],但失败了。无论如何得到rwo阵列?

1 个答案:

答案 0 :(得分:2)

二维数组不是数组数组。如果您想获得' row',那么您需要从数组中获取具有相同某个维度值的所有项目。例如。如果您从第一维获得所有值:

int[,] array = new int[4, 3] { 
      { 1, 2, 3 },
      { 4, 5, 6 },
      { 7, 8, 9 },
      { 10, 11, 12 }
   };

for(int i = 0; i <= array.GetUpperBound(1); i++)
    Console.WriteLine(array[0,i]); // getting all items from first dimension

您可以将所有这些项目放入数组:

int rowIndex = 0;
int[] row = Enumerable.Range(0, array.GetUpperBound(1) + 1)
                      .Select(i => array[1, i])
                      .ToArray();

另一种选择是使用锯齿状数组而不是二维数组:

int[][] array = new []{ 
   new[] { 1, 2, 3 },
   new[] { 4, 5, 6 },
   new[] { 7, 8, 9 },
   new[] { 10, 11, 12, 13, 14, 15 }
};

它是一个数组数组。但请注意,内部数组可以有不同的大小。得到一些&#39; row&#39;看起来像

int[] row = array[0];