如何在C#中获取多维数组的行/列长度?

91

如何在C#中获取多维数组的行或列的长度?

例如:

int[,] matrix = new int[2,3];

matrix.rowLength = 2;
matrix.colLength = 3;

4
会不会有2行3列? - Rob L
5个回答

205
matrix.GetLength(0)  -> Gets the first dimension size

matrix.GetLength(1)  -> Gets the second dimension size

21

你是否查看了 Array 的属性?

  • Length 给出了数组的长度(单元格总数)。
  • GetLength(n) 给出了指定维度(相对于 0)中单元格的数量。如果你有一个三维数组:

    int[,,] multiDimensionalArray = new int[21,72,103] ;
    

    如果你构建的是多维数组,那么 multiDimensionalArray.GetLength(n) 将会分别对于 n = 0、1 和 2 返回 21、72 和 103。

如果你正在构造不规则/稀疏数组,那么问题就稍微复杂了一些。不规则/稀疏数组通常是作为一个嵌套的数组集合来构造的。在这种情况下,你需要逐个元素进行检查。这些通常是嵌套的一维数组,但是也可能有二维数组包含三维数组,再包含五维数组等等。

无论如何,在使用不规则/稀疏结构时,你需要使用每个单元格上的长度属性。


10

对于二维数组,请使用以下代码:

var array = new int[,]
{
    {1,2,3,4,5,6,7,8,9,10 },
    {11,12,13,14,15,16,17,18,19,20 }
};
var row = array.GetLength(0);
var col = array.GetLength(1);

代码的输出结果如下:

  • 行数 = 2
  • 列数 = 10

对于N维数组,语法与上述代码类似:

var d1 = array.GetLength(0);   // size of 1st dimension
var d2 = array.GetLength(1);   // size of 2nd dimension
var d3 = array.GetLength(2);   // size of 3rd dimension
.
.
.
var dn = array.GetLength(n-1);   // size of n dimension

最好的问候!


2
使用 matrix.GetLowerBound(0)matrix.GetUpperBound(0)

0
你也可以使用: matrix.GetUpperBound(0);//行数 matrix.GetUpperBound(1);//列数

问题标记为C#,而不是Visual Basic。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接