【问题标题】:What is the difference between Array.GetLength() and Array.Length?Array.GetLength() 和 Array.Length 有什么区别?
【发布时间】:2010-01-11 20:10:20
【问题描述】:

你如何在 C# 中使用Array.GetLength 函数?

Length 属性和GetLength 函数有什么区别?

【问题讨论】:

    标签: c# arrays


    【解决方案1】:

    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) 相同的值。
    • 为什么 a.GetLength(2) 是 11 而不是 12?
    • @Mike:原因 1 和 2 只需一个键即可。
    • 为什么 a.Length 是 1320?为什么是 a.GetLength 值,只是它们的值?这没有任何意义。
    • @Neo42 1320=10x11x12
    【解决方案2】:

    对于一维数组LengthGetLength(0) 完全相同。

    对于更高级别的数组,Length 是所有 GetLength(0..Rank-1) 值的乘积,换句话说,它始终是字段的总数。

    【讨论】:

    • int[] testArray = {1, 2, 3 , 4} testArray.GetLength(1) 正确吗?
    • 没有。应该是testArray.GetLength(0)
    • divo,“锯齿状数组”是数组的数组,在每个级别 rank==1。它们不是多维的。
    【解决方案3】:

    GetLength 返回多维数组的指定维度的长度。

    Length 返回所有维度中元素总数的总和。

    • 对于一维数组,Length == GetLength(0)
    • 对于二维数组,Length == GetLength(0) * GetLength(1)

    等等

    【讨论】:

    • 不太正确:二维数组:Length = GetLength(0) * GetLength(1)
    • 这是一个聪明的错字!我是如何设法转置 + 和 * 的?! (固定)
    【解决方案4】:

    .Length 属性返回数组中元素的数量,无论是一维还是多维。也就是说,一个 2x6 数组的长度为 12。

    .GetLength(0) 方法返回多维数组中行方向的元素数。对于一个为 2 的 2x6 数组。

    .GetLength(1) 方法返回多维数组中列方向的元素数。对于一个为 6 的 2x6 数组。

    这些不返回实际的元素值,如上面选择的答案所述。

    【讨论】:

      【解决方案5】:

      在数学术语中,我们称之为 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)= 4GetLength(1)=3length =12

      【讨论】:

      • GetLength(0)= 3 和 GetLength(1)=2。它返回元素的索引(从零开始),而不是实际的元素计数。我被这个弄糊涂了一分钟。所以我必须澄清。
      猜你喜欢
      • 2011-11-04
      • 1970-01-01
      • 2011-06-15
      • 2014-01-08
      • 2010-10-02
      • 2011-12-12
      • 2010-09-16
      • 2012-03-14
      • 2012-02-06
      相关资源
      最近更新 更多