如何在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 = 10n-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#中获取多维数组的行/列的长度?的主要内容,如果未能解决你的问题,请参考以下文章