C#中获取行列的维数和长度

 


下面是C#多维数组的一些常用属性方法:
array.Length //获取所有元的总数
array.GetLength(int dimension);//获取第dimension + 1维度的元素个数,如果是二维数组,则0获取行数,1获取列数。
array.Rank //获取数组的维数,二维数组则为2,三维数组则为3
array.GetUpperBound(int dimension);//获取第dimension + 1维度的最大索引
array.GetLowund(int diamension);//获取第dimension + 1维度的第一个元素
————————————————

    public partial class Form1 : Form
    {
        //定义一个5行3列的二维数组
        int[,] array = new int[,] 
        {
              { 1, 2, 3 },
              { 4, 5, 6 },
              { 7, 8, 9 },
              { 78, 88, 98 },
              { 78, 88, 98 }
        };
        public Form1()
        {
            InitializeComponent();

            int a = array.GetLength(0);//返回数组的第一维的长度,二维数组时返回行数,此例返回5
            int b = array.GetLength(1);//返回数组的第二维的长度,二维数组时返回列数,此例返回3
            int c = array.GetUpperBound(0);//返回第一维数组的索引上限,此例返回4
            int d = array.GetUpperBound(1); //返回第二维数组的索引上限,此例返回2

            int dimension = array.Rank;//获取维数,此例返回2
            int colNum = array.GetUpperBound(0) + 1;//获取指定维度的索引上限,在加上一个1就是总数,这里表示二维数组的行数,此例返回5
            int rowNum = array.GetUpperBound(1) + 1;//获取指定维度的索引上限,在加上一个1就是总数,这里表示二维数组的列数此例返回3
            int totalNum = array.Length;//获取整个二维数组的长度,即所有元的个数,此例返回15
        }
    }

【实例 1】在 Main 方法中定义一个存放学生成绩的二维数组,并将该数组中每个学生的成绩输出。

根据题目要求,定义二维数组为 double 类型的,代码如下。

class Program
{
    static void Main(string[] args)
    {
        double[,] points = { { 90, 80 }, { 100, 89 }, { 88.5, 86 } };
        for(int i = 0; i < points.GetLength(0); i++)
        {
            Console.WriteLine("" + (i + 1) + "个学生成绩:");
            for(int j = 0; j < points.GetLength(1); j++)
            {
                Console.Write(points[i, j] + " ");
            }
            Console.WriteLine();
        }
    }
}

 

执行上面的代码,效果如下图所示。
image.png
在遍历多维数组元素时使用 GetLength(维度) 方法能获取多维数组中每一维的元素,维度也是从 0 开始的,因此在该实例中获取数组中第一维的值时使用的是 points.GetLength(0)。

在 C# 语言中不仅支持上面给出的多维数组,也支持锯齿型数组,即在多维数组中的每一维中所存放值的个数不同。

锯齿型数组也被称为数组中的数组。定义锯齿型数组的语法形式如下。
数据类型[][] 数组名 = new 数据类型[数组长度][];
数组名[0] = new 数据类型[数组长度];

在这里,数据类型指的是整个数组中元素的类型,在定义锯齿型数组时必须要指定维度。

【实例 2】在 Main 方法中创建一个锯齿型数组,第一维数组的长度是 2、第二维数组的长度是 3、第三维数组的长度是 4,并直接向数组中赋值,最后输出数组中的元素。

根据题目要求,代码如下。

class Program
{
    static void Main(string[] args)
    {
        int[][] arrays = new int[3][];
        arrays[0] = new int[] { 1, 2 };
        arrays[1] = new int[] { 3, 4, 5 };
        arrays[2] = new int[] { 6, 7, 8, 9 };
        for(int i = 0; i < arrays.Length; i++)
        {
            Console.WriteLine("输出数组中第" + (i + 1) + "行的元素:");
            for(int j=0;j<arrays[i].Length; j++)
            {
                Console.Write(arrays[i][j] + " ");
            }
            Console.WriteLine();
        }
    }
}

 

执行上面的代码,效果如下图所示。
image.png
锯齿型数组中的值也可以通过循环语句来赋值,与输岀语句类似。

在上面的实例中, arrays 数组中的元素从控制台输入的具体语句如下。

int[][] arrays = new int[3][];
arrays[0] = new int[2];
arrays[1] = new int[3];
arrays[2] = new int[4];
for(int i = 0; i < arrays.Length; i++)
{
    Console.WriteLine("输入数组中第" + (i + 1) + "行的元素:");
    for(int j=0;j<arrays[i].Length; j++)
    {
        arrays[i][j] = int.Parse(Console.ReadLine());
    }
    Console.WriteLine();
}

 

注:此文部分内容来源于网络,如有不妥,请联系删除!

posted @ 2021-03-10 11:07  passtime  阅读(2105)  评论(0编辑  收藏  举报