当前位置: 首页 > news >正文

C#基础(5)交错数组*

前言

我们已经完成了一维数组和多维数组的简单学习(三维四维其实和二维数组的道理大差不差),那我们就来接触C#中的一个新概念,交错数组。

交错数组是什么呢?

在C#中,交错数组(Jagged Array)是一个包含其他数组的数组。它是一个多维数组的变体,在每个维度上可以有任意长度的子数组。交错数组可以看作是一个嵌套的数组结构。

交错数组的创建和访问方式与普通的多维数组有所不同。它的每个元素都是一个数组,可以通过分别指定各个维度的索引来访问其中的元素。

交错数组的长度可以在每个维度上不同,因此它具有更大的灵活性。它适用于某些情况下,每个子数组的长度可能不同或者需要动态调整数组大小的情况。

需要注意的是,交错数组在内存中的存储方式与二维数组不同,因此在性能方面可能有差异。在选择使用交错数组时,应根据具体的需求和性能要求进行评估。

简单来说,交错数组就是,数组的数组。

但是这个是使用得不多,所以博主就简单讲解,大家也可以选学。

基本概念:数组的数组

声明

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[][] arr4 ={new int[]{1,2,3},new int[]{1,2}.new int[]{1}};

其实我们发现,就算是交错数组,也只是元素发生变化而已,其他和数组的思维几乎是一模一样的。

使用

长度获取

列获取:同二维数组

行获取:获取某一行的长度

arr[0].Length;

获取元素:直接索引

修改元素:直接赋值

遍历:

using System;class Program
{static void Main(string[] args){int[][] jaggedArray = new int[][]{new int[] { 1, 2, 3 },new int[] { 4, 5 },new int[] { 6, 7, 8, 9 }};foreach (int[] innerArray in jaggedArray){foreach (int element in innerArray){Console.Write(element + " ");}Console.WriteLine();}}
}

增删查改:同二维数组,这里就不给你举例了,你要学会举一反三

总结

至此,数组的基本学习我们就结束了,但是数组在日后和我们打交道的次数只多不少,所以大家一定要牢记前两节一维数组和二维数组的概念。

c#基础本身不难,有编程基础的人会很快上手。

但博主还是那句话,戒骄戒躁,学习需要脚踏实地。

请期待我的下一篇博客。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Python | Leetcode Python题解之第390题消除游戏
  • IDEA加载工程报错Error Loading Project: Cannot load module demo.iml解决
  • 【Rust光年纪】Rust 机器人学库全景:功能、安装与API概览
  • 多个线程如何轮流输出1到100
  • GPU池化赋能智能制造
  • 原型模式prototype
  • C++ | Leetcode C++题解之第390题消除游戏
  • 专项练习-数据库SQL-177题(下)
  • cmake命令交叉编译opencv
  • linux高级学习9
  • NAT技术+代理服务器+内网穿透
  • (一)十分简易快速 自己训练样本 opencv级联haar分类器 车牌识别
  • ASP.Net Core 因集成WebSocket导致Swagger UI显示错误
  • 11. MyBatis的一级缓存和二级缓存有什么区别?如何配置和使用二级缓存?
  • redis之缓存淘汰策略
  • 10个最佳ES6特性 ES7与ES8的特性
  • 345-反转字符串中的元音字母
  • ABAP的include关键字,Java的import, C的include和C4C ABSL 的import比较
  • Fabric架构演变之路
  • Intervention/image 图片处理扩展包的安装和使用
  • Java面向对象及其三大特征
  • Mysql数据库的条件查询语句
  • PV统计优化设计
  • Spring核心 Bean的高级装配
  • Terraform入门 - 1. 安装Terraform
  • vue-cli在webpack的配置文件探究
  • webpack入门学习手记(二)
  • 动态规划入门(以爬楼梯为例)
  • 和 || 运算
  • 两列自适应布局方案整理
  • 爬虫模拟登陆 SegmentFault
  • 前嗅ForeSpider教程:创建模板
  • 什么软件可以剪辑音乐?
  • 使用 Node.js 的 nodemailer 模块发送邮件(支持 QQ、163 等、支持附件)
  • 再谈express与koa的对比
  • 正则与JS中的正则
  • Java总结 - String - 这篇请使劲喷我
  • 关于Kubernetes Dashboard漏洞CVE-2018-18264的修复公告
  • 说说我为什么看好Spring Cloud Alibaba
  • ###C语言程序设计-----C语言学习(6)#
  • (Redis使用系列) Springboot 使用redis实现接口Api限流 十
  • (ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY)讲解
  • (Spark3.2.0)Spark SQL 初探: 使用大数据分析2000万KF数据
  • (差分)胡桃爱原石
  • (二)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (二)延时任务篇——通过redis的key监听,实现延迟任务实战
  • (力扣记录)1448. 统计二叉树中好节点的数目
  • (一)Thymeleaf用法——Thymeleaf简介
  • .chm格式文件如何阅读
  • .NET BackgroundWorker
  • .NET CORE 3.1 集成JWT鉴权和授权2
  • .net redis定时_一场由fork引发的超时,让我们重新探讨了Redis的抖动问题
  • .NET/C# 使窗口永不获得焦点
  • .Net+SQL Server企业应用性能优化笔记4——精确查找瓶颈
  • .NetCore部署微服务(二)