• C#多维数组的属性获取方法及操作注意


    C#提供了多维数组的各种属性获取方法,但是其表达形式与我们的习惯不尽相同,因此,也是花了一些脑筋,写了一些代码测试才搞明白的,现分享给大家:

    1、一维数组

    一维数组是一个一行多列的数据组合,待会在二维数组里说明。

    2、二维数组

    我们定义一个如下二维数组:

    double[,] array1 = new double[3, 6];//2维数组

    其形象结构如下,这里:维数=2;第1个维度是行,这里为3;第二个维度是每行的列数,这里为6

    012345
    第0行
    第1行
    第2行

    这里,用代码获取数组的属性及结果如下(索引都是从0开始):

    1. double[,] array1 = new double[3, 6];//2维数组
    2. int a = array1.Rank;//维数=2
    3. a = array1.GetLength(0);//获取第0维的元素个数=3
    4. a = array1.GetLength(1);//获取第1维的元素个数=6
    5. a = array1.GetLowerBound(0);//获取第0维的第一个元素索引=0
    6. a = array1.GetUpperBound(0);//获取第0维的最后一个元素索引=2
    7. a = array1.GetLowerBound(1);//获取第0维的第一个元素索引=0
    8. a = array1.GetUpperBound(1);//获取第1维的最后一个元素索引=5
    9. a = array1.Length;//获取总元素数量=18

     3、三维数组

    我们定义一个如下三维数组:

    double[,,] array2 = new double[2, 3, 6];//3维数组

    其形象结构如下,这里:维数=3;第1个维度层,这里为2,第2个维度是行,这里为3;第3个维度是每行的列,这里为6

     

    1. double[,,] array2 = new double[2, 3, 6];//3维数组
    2. a = array2.Rank;//维数=3
    3. a = array2.GetLength(0);//获取第0维的元素个数=2
    4. a = array2.GetLength(1);//获取第1维的元素个数=3
    5. a = array2.GetLength(2);//获取第2维的元素个数=6
    6. a = array2.Length;//获取总元素数量=36

    4、更多维数

    更多维数也是如此理解,只不过是在定义里多加几个逗号而已[,,,,,,,],但是要注意:元素个数是指数级上升的。

    5、操作注意

    • 数组的操作比列表快很多,如果可能,就用这种数组结构。
    • 遍历数组的高效方法是多层for循环,维序号越高的越要放内循环(见下),颠倒过来则效率降低:
      1. for(int i = 0; i < 3; i++)
      2. {
      3. for(int j = 0; j < 6; j++)
      4. {
      5. array1[i, j] = -1;
      6. }
      7. }

  • 相关阅读:
    开源的分布式 NoSQL 数据库管理系统 王者 Cassandra 简介 应用场景 优点 不足 版本历史
    Python多进程开发
    实现动态大数结构
    Jumpserver堡垒机部署(完整过程)
    恶补了 Python 装饰器的八种写法,你随便问~
    【图】按公因数计算最大组件大小 并查集
    技术分享 | 接口自动化测试如何处理 Header cookie
    WPF篇(10)-Label标签+TextBlock文字块+TextBox文本框+RichTextBox富文本框
    PHP代码审计入门-DVWA靶场CSRF篇
    手机电脑scoket通信 手机软件 APP inventor 服务端程序python
  • 原文地址:https://blog.csdn.net/chengjl8/article/details/125468469