【问题标题】:How to get the length of row/column of multidimensional array in C#?如何在C#中获取多维数组的行/列的长度?
【发布时间】: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


【解决方案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 数组。

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2013-02-21
          • 1970-01-01
          • 2015-08-13
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多