C#-数组:一维数组、二维数组、交错数组

数组:声明初始化过后,就不能在原有的基础上进行 添加 或者 删除 了

一:一维数组

一般将一维数组简称为数组

1.1 数组的声明
int[] arr1; 没有分配房间。初始化后就分配房间了int[] arr2 = new int[5]; 存在默认值,为0int[] arr3 = new int[5] { 1, 2, 3, 4, 5 }; 后面内容的数量要与5匹配int[] arr4 = new int[] { 1,2,3,4,5,6,7,8,9};int[] arr5 = { 1,3,4,5,6};bool[] arr6 = { true, false };
1.2 数组的使用

长度:arr1.Length;

获取值:索引 arr2[0]

修改值:赋值 arr2[0]=2;

遍历:循环。for、foreach ←改查

增删:“搬家”

数组的遍历-逐个输出数组中的元素,或查找某个元素

//数组的遍历
for(int i = 0;i < array.Length;i++){Console.WriteLine(array[i]);
}

增加数组元素:数组声明初始化过后,就不能在原有的基础上进行 添加 或者 删除 了

//增加一个数组元素->“搬家”
int[] array2 = new int[6];
for(int i = 0;i < array.Length;i++){array2[i] = array[i];
}
array = array2;

应用:批量存储游戏中的同一类型对象的 容器 比如 所有的怪物 所有玩家

二:二维数组

2.1 二维数组的声明
int[,] arr;
int[,] arr2 = new int[3, 3];
int[,] arr3 = new int[3, 3] { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } };
int[,] arr4 = new int[,] { { 1, 2, 3 },{ 4, 5, 6 },{ 7, 8, 9 } };
int[,] arr5 = { { 1, 2, 3 },{ 4, 5, 6 },{ 7, 8, 9 } };
2.2 二维数组的使用

得到行:arr.GetLength(0);

得到列:arr.GetLength(1);

获取值:arr[0, 1]

修改值:赋值 arr2[0,1]=2;

遍历:循环嵌套。for、foreach ← 改查

增删:“搬家”

//二维数组的遍历
int[][] arr2 = new int[][]{{new int[] {1,2,3}},new int[] {4,5,6}};
//方法一:
for(int i=0;i<arr2.GetLength(0);i++){for(int j=0;j<arr[i].Length,j++){Console.WriteLine(arr2[i][j]);}
}
//方法二:
for(int i=0;i<arr2.GetLength(0);i++){foreach(int num in arr2[i]){Console.WriteLine(num);}
}
//增加二维数组元素
int[,] array2 = new int[3,3];
for(int i = 0;i < array.GetLength(0);i++){for(int j = 0;j < array.GetLength(1);j++)array2[i,j] = array[i,j];
}
array = array2;

应用:游戏中一般用来存储 矩阵,再控制台小游戏中可以用二维数组,表示地图格子

 二维数组练习题

三:交错数组

交错数组 是 数组的数组,每个维度的数量可以不同

注意:二维数组的每行的列数相同,交错数组每行的列数可能不同

3.1 交错数组的声明
int[][] arr1;
int[][] arr2 = new int[3][];
int[][] arr3 = new int[3][] { new int[] { 1, 2, 3 },new int[] { 1, 2 },new int[] { 1 }};
int[][] arr4 = new int[][] { new int[] { 1, 2, 3 },new int[] { 1, 2 },new int[] { 1 }};
int[][] arr5 = { new int[] { 1, 2, 3 },new int[] { 1, 2 },new int[] { 1 }};

交错数组:可以存储同一类型的m行不确定列的数据

3.2 二维数组和交错数组的区别
  1. 以数组作为成员变量

  2. 每个维度的数量可不同

3.3 交错数组的使用

得到行:arr.GetLength(0)

得到某一行列数:array[0].Length

获取值:array[0][1]

修改值:赋值 array[0][1]=2;

遍历:循环嵌套。for、foreach ← 改查

补充:数组搬家

  public void AddFriend(Person p){if(friends == null){friends = new Person[] { p };}else{//新建一个 房子数组Person[] newFriends = new Person[friends.Length + 1];//搬家for (int i = 0; i < friends.Length; i++){newFriends[i] = friends[i];}//把新加的朋友放到最后一个newFriends[newFriends.Length - 1] = p;//地址重定向friends = newFriends;}}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/58956.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ADB指定进程名称kill进程

adb shell ps | grep <process_name> | awk {print $2} | xargs adb shell killadb shell ps&#xff1a;列出所有正在运行的进程。grep <process_name>&#xff1a;筛选出包含指定进程名称的行。awk ‘{print $2}’&#xff1a;提取输出中的第二列&#xff08;通常…

使用PostgreSQL进行高效数据管理

&#x1f493; 博客主页&#xff1a;瑕疵的CSDN主页 &#x1f4dd; Gitee主页&#xff1a;瑕疵的gitee主页 ⏩ 文章专栏&#xff1a;《热点资讯》 使用PostgreSQL进行高效数据管理 PostgreSQL简介 安装PostgreSQL 在Ubuntu上安装PostgreSQL 在CentOS上安装PostgreSQL 在macOS上…

利用人工智能提升内容生产效率与质量的策略与前景

引言 随着数字时代信息的爆炸式增长&#xff0c;内容生产变得前所未有的重要。无论是媒体、广告、教育&#xff0c;还是社交平台&#xff0c;优质内容的需求量都在持续攀升。然而&#xff0c;提升内容生产的效率和质量一直以来都是一项挑战。人工智能&#xff08;AI&#xff0…

3.3 windows,ReactOS系统中页面的换出----1

系列文章目录 文章目录 系列文章目录3.3 页面的换出MiBalancerThread()MmTrimUserMemory&#xff08;&#xff09;MmPageOutVirtualMemory&#xff08;&#xff09; 3.3 页面的换出 在前一节中我们看到&#xff0c;如果有映射的页面已经被倒换到磁盘上即倒换文件中&#xff0c…

Git - 两种方式撤销已提交到远端仓库的记录并删除提交记录

文章目录 命令行方式附 命令行方式 确定要撤销的提交记录 首先&#xff0c;使用以下命令查看提交历史&#xff1a; git log找到想撤销的提交记录的哈希值&#xff08;SHA&#xff09; &#xff0c;比如9c9c98d6f7f28c41d971f8efd51ed31f9720792c 撤销提交记录 根据需求选择以下…

vscode markdown-image 图片粘贴自动上传到本地目录设置

.vscode/settings.json文件内容 {"markdown-image.base.fileNameFormat": "${hash}-${YY}${MM}${DD}-${HH}${mm}${ss}","markdown-image.local.path": "./images","markdown-image.base.uploadMethod": "Local",…

Linux入门-基础指令和权限

1.压缩打包 1.1压缩是什么 压缩是通过特定的算法&#xff0c;使文件减小体积&#xff0c;从而达到节省空间的目的。 1.2.为什么要压缩 a.压缩将文件大小减小&#xff0c;在本地可能不太明显&#xff0c;但是在网络传输中&#xff0c;减小了网络传输的成本。 b.将多个文件压…

HTML字符实体详解

HTML 字符实体是在 HTML 文档中用来表示特定字符的特殊编码。这些字符可能因为直接输入而引发解析错误,或某些字符在 HTML 中具有特殊含义(例如,< 和 > 用于标签)。因此,使用字符实体可以确保文本的准确呈现。 1. 什么是字符实体? 字符实体由一个 & 符号开始,…

大数据新视界 -- 大数据大厂之 Impala 性能优化:解锁大数据分析的速度密码(上)(1/30)

&#x1f496;&#x1f496;&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎你们来到 青云交的博客&#xff01;能与你们在此邂逅&#xff0c;我满心欢喜&#xff0c;深感无比荣幸。在这个瞬息万变的时代&#xff0c;我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…

docker pull 拉取镜像失败,使用Docker离线包

1、登录并注册Github&#xff0c;然后在Github中搜索并打开“wukongdaily/DockerTarBuilder” 项目&#xff0c;在该项目主页点击“Fork”。 然后点 “Create Fork”&#xff0c;将项目创建到自己的Github主页。 2、接着在自己创建过来的这个项目中点击“Actions” 3、然后…

HTTP和HTTPS到底啥区别?不只是差一个“S”这么简单.....

在信息时代&#xff0c;互联网已经成为人们生活中不可或缺的一部分。我们每天浏览网页、发送邮件、进行网络购物&#xff0c;都离不开网络数据的传输。 而保障这些数据在传输过程中的安全&#xff0c;就显得尤为重要。 HTTP和HTTPS作为两种应用层协议&#xff0c;在网络数据传…

tools日常使用(随时更新)

文章目录 1 桌面快捷方式小箭头处理参考文献 1 桌面快捷方式小箭头处理 参考来源已不可考&#xff0c;在此仅贴上代码段。 # 箭头消除 reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Icons" /v 29 /d "%systemroot%…

15.useIntersectionObserver

在现代 Web 应用中,检测元素是否进入视口是一个常见需求,尤其是在实现懒加载、无限滚动或跟踪广告曝光等场景中。useIntersectionObserver 钩子提供了一种声明式的方法来利用 Intersection Observer API,使得监测元素可见性变得简单而高效。这个自定义钩子不仅简化了 Inters…

微服务设计模式 - 发布订阅模式(Publisher Subscriber Pattern)

微服务设计模式 - 发布订阅模式&#xff08;Publisher Subscriber Pattern&#xff09; 定义 发布-订阅模式&#xff08;Publisher-Subscriber Pattern&#xff09;是一种常见的设计模式&#xff0c;被广泛用于云计算和分布式系统中&#xff0c;以实现松散耦合的组件间通信。发…

计算布尔二叉树的值

给你一棵 完整二叉树 的根节点&#xff0c;这棵树有以下特征&#xff1a; 叶子节点 要么值为 0 要么值为 1 &#xff0c;其中 0 表示 False &#xff0c;1 表示 True 。非叶子节点 要么值为 2 要么值为 3 &#xff0c;其中 2 表示逻辑或 OR &#xff0c;3 表示逻辑与 AND 。 …

找出目标值在数组中的开始和结束位置(二分查找)

给你一个按照非递减顺序排列的整数数组 nums&#xff0c;和一个目标值 target。请你找出给定目标值在数组中的开始位置和结束位置。 如果数组中不存在目标值 target&#xff0c;返回 [-1, -1]。 你必须设计并实现时间复杂度为 O(log n) 的算法解决此问题。 示例 1&#xff1a…

0xGame 2024 [Week 4] Jenkins

1.前言 由于好久没做web题了&#xff0c;所以今天来尝试来做一波web题&#xff0c;仅供刷题记录。 2.题目 这个给的提示对于小白来说实在是友好的过劲。 3.分析 上网搜到一个关于Jenkins的历史漏洞&#xff0c;下面链接可供参考 https://blog.csdn.net/2301_80127209/arti…

yolov8训练及测试(ubuntu18.04、tensorrt、ros)

1 数据集制作 1.1标注数据 Linux/Ubuntu/Mac 至少需要 Python 2.6 &#xff08;推荐使用 Python 3 或更高版本 及 PyQt5&#xff09; Ubuntu Linux (Python 3 Qt5) git clone https://gitcode.com/gh_mirrors/la/labelImg.git sudo apt-get install pyqt5-dev-tools cd lab…

Nginx 反向代理(解决跨域)

文章目录 前言一、同源策略二、跨域是什么&#xff1f;三、Nginx解决跨域1.前端示例代码2.说明 四、nginx反向代理配置五、启动nginx六、最终效果总结 前言 Nginx反向代理解决跨域 一、同源策略 定义&#xff1a;同源策略&#xff08;Same-Origin Policy&#xff09;是指浏览…

clickhouse配置用户角色与权限

首先找到user.xml文件&#xff0c;默认在/etc/clickhouse-server路径下 一、配置角色 找到标签定义 <aaaa><readonly>1</readonly><allow_dll>0</allow_dll> </aaaa>其中aaaa为角色名称&#xff0c;readonly为只读权限&#xff08;0–代表…