• 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. }

  • 相关阅读:
    一个在使用react时突然遇到的问题
    ⑪、企业快速开发平台Spring Cloud之HTML 布局
    嵌入式Qt-交叉编译FFmpeg与视频播放测试
    ChatGPT竞争对手Writer,获得1亿美元融资
    按照规则来,为什么还是提图片必须是一条字符串啊!
    ETL实现实时文件监听
    “UTONMOS”掀起元宇宙游戏热潮,全球发展前景广阔
    基于FPGA的正弦PWM产生系统verilog实现
    谣言检测()——《Debunking Rumors on Twitter with Tree Transformer》
    c++ Mixin实现的一种方法
  • 原文地址:https://blog.csdn.net/chengjl8/article/details/125468469