【发布时间】:2010-01-11 20:10:20
【问题描述】:
你如何在 C# 中使用Array.GetLength 函数?
Length 属性和GetLength 函数有什么区别?
【问题讨论】:
你如何在 C# 中使用Array.GetLength 函数?
Length 属性和GetLength 函数有什么区别?
【问题讨论】:
GetLength 接受一个整数,该整数指定您要查询的数组的维度并返回其长度。 Length 属性返回数组中的项目总数:
int[,,] a = new int[10,11,12];
Console.WriteLine(a.Length); // 1320
Console.WriteLine(a.GetLength(0)); // 10
Console.WriteLine(a.GetLength(1)); // 11
Console.WriteLine(a.GetLength(2)); // 12
【讨论】:
Length 将返回与GetLength(0) 相同的值。
对于一维数组Length 和GetLength(0) 完全相同。
对于更高级别的数组,Length 是所有 GetLength(0..Rank-1) 值的乘积,换句话说,它始终是字段的总数。
【讨论】:
testArray.GetLength(0)。
GetLength 返回多维数组的指定维度的长度。
Length 返回所有维度中元素总数的总和。
等等
【讨论】:
.Length 属性返回数组中元素的数量,无论是一维还是多维。也就是说,一个 2x6 数组的长度为 12。
.GetLength(0) 方法返回多维数组中行方向的元素数。对于一个为 2 的 2x6 数组。
.GetLength(1) 方法返回多维数组中列方向的元素数。对于一个为 6 的 2x6 数组。
这些不返回实际的元素值,如上面选择的答案所述。
【讨论】:
在数学术语中,我们称之为 m 行和 n 列,因此结果是二维数组的 m*n 的乘积。在这种情况下,GetLength(0) = m 行和GetLength(1)= n 列。例如,请参见下面的示例
string[,] stocks ={{"RELIND","Reliance Industries","1006.30"},{"TATMOB","Tata Mobiles","504.10"},{"ALST","Allstate","800.00"}, {"GE","GE Motors","810.00"}
};
stocks 数组返回 GetLength(0)= 4 和 GetLength(1)=3 和 length =12
【讨论】: