【发布时间】:2012-03-13 08:44:51
【问题描述】:
如何在 C# 中获取多维数组的行或列的长度?
例如:
int[,] matrix = new int[2,3];
matrix.rowLength = 2;
matrix.colLength = 3;
【问题讨论】:
-
不会有2行3列吗?
标签: c# arrays multidimensional-array
如何在 C# 中获取多维数组的行或列的长度?
例如:
int[,] matrix = new int[2,3];
matrix.rowLength = 2;
matrix.colLength = 3;
【问题讨论】:
标签: c# arrays multidimensional-array
对于二维数组,请使用以下代码:
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);
代码输出为:
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
最好的问候!
【讨论】:
matrix.GetLength(0) -> Gets the first dimension size
matrix.GetLength(1) -> Gets the second dimension size
【讨论】:
使用matrix.GetLowerBound(0) 和matrix.GetUpperBound(0)。
【讨论】:
您查看过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 数组。
无论如何,对于锯齿状/稀疏结构,您需要在每个单元格上使用长度属性。
【讨论】: