首页 > 编程语言 >(十九)C#编程基础复习——交错数组

(十九)C#编程基础复习——交错数组

时间:2023-11-15 17:37:23浏览次数:32  
标签:arr 元素 复习 C# 编程 int 数组 交错 new

C#中的交错数组其实就是元素为数组的数组,换句话说就是交错数组中的每个元素都可以是维度和大小不同的数组,所以有时交错数组也称为“数组的数组”。这一节比较复杂,用到的时候可以再深入挖掘,多敲代码练习总会出奇迹。

一、声明交错数组

交错数组声明语法:

data_type[][]array_name;

假如要声明一个具有三个元素的一维交错数组,并且数组中的每个元素都是一个一维的整型数组,示例如下:

int [] [] arr=new int [3][];

二、初始化交错数组

和普通数组相同,交错数组也需要初始化后才可以使用,可以使用下面的方式初始化一个交错数组。

int [] [] arr=new int [3][];//定义一个交错数组
arr[0]=new int[5];//对数组的第一个元素初始化
arr[1]=new int[4];//对数组的第二个元素初始化
arr[2]=new int[2];//对数组的第三个元素初始化

上面的交错数组中包含三个元素,第一个元素使长度为5的整型数组,第二个元素使长度为4的整型数组,第三个元素是长度为2的整型数组。

除了上面的方法外,还可以直接使用具体的值来填充数组,这种情况下就不需要再设定数组的大小了,如下:

int [][] arr=new int [3][];//定义一个交错数组
arr[0]=new int[]{1,2,3,4,5};
arr[1]=new int []{6,7,8,9};
arr[2]=new int []{10,11};

还可以在声明数组时,直接将数组初始化,如下:

int [][] arr=new int [][]{new int []{1,2,3,4,5},new int []{6,7,8,9},new int []{10,11}};

上面的声明方式还有一种简写方式,如下:

int [][]arr={new int[]{1,2,3,4,5},new int []{6,7,8,9},new int []{10,11}};

注意:不能从元素初始化中省略new运算符,因为不存在元素的默认初始化。

三、访问数组中的元素

以上面定义的交错数据arr为例,可以使用如下所示的方法来获取数组中的每个元素或者为指定的元素赋值:

int a=arr[0][1];//变量a的值为:2
arr[2][1]=0;    //将交错数组中第三个数组元素中的第二个元素赋值为0

四、交错数组和多维数组

交错数组中的元素不仅可以是一维数组,还可以是多维数组,例如下面的代码定义了一个包含三个二维数组元素的一维交错数组:

int [][,] arr=new int[3][,]{new int[,]{{1,1},{2,3}},new int[,]{{5,8},{13,21},{34,55}},new int[,]{{89,144},{233,344},{610,987}}};

对于这样的交错数组,在访问数组中的每个元素时也需要做出相应的改变,如下:

int a=arr[1][1,1];//变量a的值为21
int b=arr[2][0,0];//变量b的值为89

 

标签:arr,元素,复习,C#,编程,int,数组,交错,new
From: https://www.cnblogs.com/daihaoliulingyi601/p/17834110.html

相关文章

  • 【你不知道的JavaScript】this关键字
    没有this时,需要传入上下文获取name,在多个上下文时,代码变得繁杂重复varme={name:"Kyle"};varyou={name:"Reader"};functionidentify(context){returncontext.name.toUpperCase();}functionspeak(context){vargreeting="Hello,I&......
  • 装饰器复习加补充
    装饰器给现有模块增添新的小功能,不改变原有的代码和调用方式的情况下,增加新的功能开放封闭原则:1、对扩展开放,在有新的需求和变划时,可以对现有的代码进行扩展2、对修改封闭,类设计完成后,就可以独立其工作,不要对类尽做修改if__name__=='__main__':的作用一个python文......
  • chatglm3-6b尝试
    十月底智谱开元路chatglm3,果断来尝试一下。1.ChatGLM3亮点ChatGLM3是智谱AI和清华大学KEG实验室联合发布的新一代对话预训练模型。ChatGLM3-6B是ChatGLM3系列中的开源模型,在保留了前两代模型对话流畅、部署门槛低等众多优秀特性的基础上,ChatGLM3-6B引入了代码执行(Code......
  • CreateCollection API执行流程_milvus源码解析
    CreateCollectionAPI执行流程源码解析milvus版本:v2.3.2CreateCollection这个API流程较长,也是milvus的核心API之一,涉及的内容比较复杂。这里只介绍和元数据相关的流程。整体架构:CreateCollection的数据流向:1.客户端sdk发出CreateCollectionAPI请求。frompymilvusimp......
  • 一个Git clone仓库的指定目录命令对比国内外常见AI(一)使用ChatGPT3.5
    通常情况下,我们会克隆整个Git仓库,但有时候我们只需要其中某一个目录或文件,这时候只克隆子目录会更加方便。这个需求好像不是经常用到,搜索结果也是五花八门,有些完全达不到要求,正好用这个机会测试一下最近大火的AI看看是否足够智能。国外ChatGPT3.5(找一个可以访问的就好,ChatGPT4没找......
  • 决策树(Decision Tree)
    决策树是一种基于树结构的分类和回归模型,它通过对数据进行逐步的分解,从根节点开始,根据不同的特征进行分割,最终到达叶节点,叶节点对应一个预测结果。以下是决策树的基本概念和构建过程的详细解释:决策树的基本概念:节点(Node):根节点(RootNode):树的起始节点,包含整个数据集。内部节......
  • 刚开始装Acaconda无法创建虚拟环境解决方法
    这个方法完美解决解决anaconda创建环境失败的问题_anaconda创建环境出错-CSDN博客......
  • 软件测试|好用的pycharm插件推荐(四)——Gitee
    简介现在的IDE都是可以集成了代码管理功能的,我们平时可以在pycharm中,轻松实现我们代码的版本管理,但是由于一些原因,GitHub的访问不稳定,我们只能使用国内的代码托管平台Gitee来实现我们的代码管理,但是pycharm是不能直接连接到Gitee仓库的,我们必须要先安装Gitee插件,才能实现pycharm......
  • 高通 Qualcomm QPST, QXDM , QCAT
    提供高通工具,技术指导,以下工具均跳过licenceQPSTQXDM4QCAT6另有Unisoc、ZTEsanechips、ASR等Modem调测工具关联移远、广和通、美格智能、乐鑫科技、中移物联 1.QXDM抓取log的步骤前言:(1)安装QXDM之前请先安装QPST,因为QXDM是需要QPSTServer支持的(2)安装QXDM要用最新版本......
  • vcpkg 设置包下载源
    在vcpkg中,可以通过设置环境变量VCPKG_DEFAULT_TRIPLET_OVERRIDE来指定包的下载源。以下是一些常见的下载源和设置方式:使用默认源(Microsoft):setVCPKG_DEFAULT_TRIPLET_OVERRIDE=x64-windows使用清华大学的源:setVCPKG_DEFAULT_TRIPLET_OVERRIDE=x64-windows-tuna......