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 二维数组和交错数组的区别
-
以数组作为成员变量
-
每个维度的数量可不同
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;}}
相关文章:
C#-数组:一维数组、二维数组、交错数组
数组:声明初始化过后,就不能在原有的基础上进行 添加 或者 删除 了 一:一维数组 一般将一维数组简称为数组 1.1 数组的声明 int[] arr1; 没有分配房间。初始化后就分配房间了int[] arr2 new int[5]; 存在默认值,为0int[] arr3…...
动态规划应该如何学习?
动态规划如何学习 参考灵神的视频和题解做的笔记(灵神YYDS,以后也都会用这套逻辑去思考) 枚举选哪个: 动态规划入门:从记忆化搜索到递推_哔哩哔哩_bilibili 746. 使用最小花费爬楼梯 - 力扣(LeetCode&a…...
【力扣 + 牛客 | SQL题 | 每日4题】牛客SQL热题210,213,212,219
1. 力扣SQL1076:项目员工2 1.1 题目: 表:Project ---------------------- | Column Name | Type | ---------------------- | project_id | int | | employee_id | int | ---------------------- (project_id, employee_id) 是…...
Qt 应用开发之 MVC 架构
在Qt应用开发中,MVC(Model-View-Controller)架构确实是一种常用的设计模式,它通过将应用程序的业务逻辑、数据展示和用户交互分离开来,显著提高了代码的可维护性和可扩展性。以下是MVC架构在Qt应用开发中的原理阐述&am…...
python之字符串总结
字符串(str) 对于字符串的学习,我整理了网上的一些资料,希望可以帮助到各位!!! 概述 由多个字母,数字,特殊字符组成的有限序列 字符串的定义:可以使用一对…...
Flutter鸿蒙next 封装 Dio 网络请求详解:登录身份验证与免登录缓存
✅近期推荐:求职神器 https://bbs.csdn.net/topics/619384540 🔥欢迎大家订阅系列专栏:flutter_鸿蒙next 💬淼学派语录:只有不断的否认自己和肯定自己,才能走出弯曲不平的泥泞路,因为平坦的大路…...
sql server复制一张表(表结构或表数据)SQL语句整理
1. 复制表结构及数据到新表 CREATE TABLE 新表 SELECT * FROM 旧表;这种方法会复制 旧表 中的所有内容到 新表,但新表不会保留原表的主键、自动递增等属性。为了保持这些属性,需要使用 ALTER 语句进行后续处理 2. 只复制表结构到新表 使用条件始终为假…...
c语言-进位计数制
文章目录 一、进位计数制是什么?二、c语言1.二进制转十进制2.十进制转二进制 一、进位计数制是什么? 进位计数制简称进制,是人类用于计算数量的基本规则。 可使用数字符号的数目称为基数或底数,基数个数为n个,即可称n…...
记本地第一次运行seatunnel示例项目
前置 静态源码编译通过:https://blog.csdn.net/u011924665/article/details/143372464 参考 seatunnel官方的开发环境搭建文档:https://seatunnel.incubator.apache.org/zh-CN/docs/2.3.5/contribution/setup 安装scala 下载scala 去官网下载&…...
Threejs 实现 VR 看房完结
效果: threejs 3d Vr 看房 gitee 地址: threejs-3d-map: 1、threejs 实现3d 地图效果链接:https://blog.csdn.net/qq_57952018/article/details/1430539902、threejs 实现 vr 看房 主要代码: src/views/PanoramicView/index.vu…...
找出目标值在数组中的开始和结束位置(二分查找)
给你一个按照非递减顺序排列的整数数组 nums,和一个目标值 target。请你找出给定目标值在数组中的开始位置和结束位置。 如果数组中不存在目标值 target,返回 [-1, -1]。 你必须设计并实现时间复杂度为 O(log n) 的算法解决此问题。 示例 1:…...
VSCode进阶之路
VSCode进阶之路:从入门到高效率开发 🚀 Hey,朋友们好!还在为VSCode的海量功能感到眼花缭乱吗?咱们一起来解锁VSCode的超神技能吧! 开篇碎碎念 🎯 第一次用VSCode时,就像个闯入魔法世…...
leetcode-21-合并两个有序链表
题解: 1、初始化哑节点dum 2、 3、 代码: 参考:leetcode-88-合并两个有序数组...
SSM项目部署到服务器
将SSM(Spring Spring MVC MyBatis)项目部署到服务器上,通常需要以下步骤: 打包项目 生成一个WAR文件,通常位于target目录下 配置Tomcat: 将生成的WAR文件复制到Tomcat的webapps目录下。 配置conf/se…...
【Linux】网络编程:初识协议,序列化与反序列化——基于json串实现,网络通信计算器中简单协议的实现、手写序列化与反序列化
目录 一、什么是协议? 二、为什么需要有协议呢? 三、协议的应用 四、序列化与反序列化的引入 什么是序列化和反序列化? 为什么需要序列化和反序列化? 五、序列化推荐格式之一:JSON介绍 六、网络版计算器编程逻…...
Educational Codeforces Round 171 (Rated for Div. 2)(A~D) 题解
Problem - A - Codeforces--PerpendicularSegments 思路:正方形对角线最长,并且相互垂直.直接输出即可. int x,y,k; void solve(){ //Acin>>x>>y>>k;int resmin(x,y);cout<<"0 0"<<" "<<res<<" &q…...
【教程】Git 标准工作流
目录 前言建仓,拉仓,关联仓库修改代码更新本地仓库,并解决冲突提交代码,合入代码其他常用 Git 工作流删除本地仓库和远程仓库中的文件日志打印commit 相关 前言 Git 是日常开发中常用的版本控制工具,配合代码托管仓库…...
Nico,从零开始干掉Appium,移动端自动化测试框架实现
开头先让我碎碎念一波~去年差不多时间发布了一篇《 UiAutomator Nico,一个基于纯 adb 命令实现的安卓自动化测试框》(https://testerhome.com/topics/37042), 由于种种原因 (详见此篇帖子) 当时选择了用纯 adb 命令来实现安卓自动…...
PHP合成图片,生成海报图,poster-editor使用说明
之前写过一篇使用Grafika插件生成海报图的文章,但是当我再次使用时,却发生了错误,回看Grafika文档,发现很久没更新了,不兼容新版的GD,所以改用了intervention/image插件来生成海报图。 但是后来需要对海报…...
微信小程序 - 数组 push / unshift 追加后数组返回内容为数字(数组添加后打印结果为 Number 数值类型)
前言 假设一个空数组,通过 push 方法追加了一个项,控制台打印的结果竟然是 Number 数值。 例如,以下微信小程序代码: // 源数组 var arr = [] // 追加数据 var tem = arr.push(数据)...
Dobby跨平台编译技术指南:从环境配置到多架构部署实践
Dobby跨平台编译技术指南:从环境配置到多架构部署实践 【免费下载链接】Dobby a lightweight, multi-platform, multi-architecture hook framework. 项目地址: https://gitcode.com/gh_mirrors/do/Dobby 一、基础认知:Hook框架与跨平台编译基础 …...
RLT火了,但拧螺丝的真问题真是它解决的吗?
先说结论RLT的核心价值在于“分工”:让笨重但泛化好的VLA做感知和粗规划,让轻快但专精的小网络做在线微调,这是一种计算和样本成本的折中架构。它没有解决数据收集的根本成本,而是优化了“数据利用率”和“策略更新效率”…...
服务自启动配置2024最新指南:从痛点解决到跨平台实现
服务自启动配置2024最新指南:从痛点解决到跨平台实现 【免费下载链接】lucky 软硬路由公网神器,ipv6/ipv4 端口转发,反向代理,DDNS,WOL,ipv4 stun内网穿透,cron,acme,阿里云盘,ftp,webdav,filebrowser 项目地址: https://gitcode.com/GitHub_Trending/luc/lucky …...
5分钟解决PDF转Markdown痛点:Marker工具全场景应用指南
5分钟解决PDF转Markdown痛点:Marker工具全场景应用指南 【免费下载链接】marker 一个高效、准确的工具,能够将 PDF 和图像快速转换为 Markdown、JSON 和 HTML 格式,支持多语言和复杂布局处理,可选集成 LLM 提升精度,适…...
2022 年 9 月青少年软编等考 C 语言四级真题解析
目录 T1. 最长上升子序列 思路分析 T2. 神奇的口袋 思路分析 T3. 滑雪 思路分析 T4. 删除数字 思路分析 T1. 最长上升子序列 题目链接:SOJ D1205 一个数的序列 b i b_i bi...
终极指南:如何用Docker快速部署opencommit AI提交工具
终极指南:如何用Docker快速部署opencommit AI提交工具 【免费下载链接】opencommit Auto-generate impressive commits with AI in 1 second 🤯🔫 项目地址: https://gitcode.com/gh_mirrors/op/opencommit opencommit是一款AI驱动的提…...
Network Connection Class深度优化:10个提升网络检测精度的技巧
Network Connection Class深度优化:10个提升网络检测精度的技巧 【免费下载链接】network-connection-class Listen to current network traffic in the app and categorize the quality of the network. 项目地址: https://gitcode.com/gh_mirrors/ne/network-co…...
Ai人工智能知识补充
文章目录 1.5 数据与算法基础:智能系统的“燃料”与“引擎” 1.5.1 数据工程:从原始数据到模型“燃料”的全链路 1.5.2 算法模型构建:从问题定义到模型部署的“炼金术” 1.5.3 数据隐私与安全:在价值挖掘与权利保护间走钢丝 1.6 面临的主要挑战:通往真正智能之路的险阻 1.…...
RexUniNLU GPU算力适配:A10/A100/T4多卡并行推理配置与吞吐量实测
RexUniNLU GPU算力适配:A10/A100/T4多卡并行推理配置与吞吐量实测 1. 引言:当零样本NLU遇上GPU加速 想象一下,你有一个能听懂人话的智能助手。你告诉它“帮我订一张明天下午去上海的机票”,它不仅能明白你想订票,还能…...
政务短信钓鱼攻击机理与防控研究 —— 以美国宾州 PennDOT 诈骗事件为例
摘要 2026 年 3 月 27 日,宾夕法尼亚州官方发布安全预警,提示公众警惕冒充 PennDOT(宾州交通局)的短信钓鱼诈骗。此类攻击以车辆管理、罚单缴费、证件状态异常为诱饵,通过仿冒政务身份诱导用户点击恶意链接,…...
