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

Posted

技术标签:

【中文标题】如何在C#中获取多维数组的行/列的长度?【英文标题】:How to get the length of row/column of multidimensional array in C#? 【发布时间】:2012-03-13 08:44:51 【问题描述】:

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

例如:

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

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

【问题讨论】:

不会有2行3列吗? 【参考方案1】:

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

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 col = 10

n-d 数组语法如上代码:

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.GetLength(0)  -> Gets the first dimension size

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

【讨论】:

【参考方案3】:

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

【讨论】:

【参考方案4】:

您查看过Array 的属性吗?

Length 为您提供数组的长度(单元格总数)。

GetLength(n) 为您提供指定维度中的单元格数(相对于 0)。如果你有一个 3 维数组:

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

那么multiDimensionalArray.GetLength(n) 将在 n = 0、1 和 2 时分别返回 21、72 和 103。

如果您正在构建锯齿状/稀疏数组,那么问题会稍微复杂一些。锯齿状/稀疏数组 [通常] 构造为数组中的嵌套数组集合。在这种情况下,您需要依次检查每个元素。这些通常是嵌套的一维数组,但没有理由不能拥有一个包含 3d 数组和 5d 数组的 2d 数组。

无论如何,对于锯齿状/稀疏结构,您需要在每个单元格上使用长度属性。

【讨论】:

以上是关于如何在C#中获取多维数组的行/列的长度?的主要内容,如果未能解决你的问题,请参考以下文章

Java中如何获取多维数组的长度

C#创建2维数组

C# 从数据库表中填充多维数组

Java中的多维数组长度

php中count获取多维数组长度的方法

获取多维数组的维度