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

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#基础本身不难,有编程基础的人会很快上手。

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

请期待我的下一篇博客。


http://www.kler.cn/news/294361.html

相关文章:

  • 【Rust光年纪】Rust 机器人学库全景:功能、安装与API概览
  • 多线程篇(阻塞队列- BlockingQueue)(持续更新迭代)
  • 不同vlan之间的通信方法
  • 微信小程序仿微信聊天界面
  • 【spring】does not have member field ‘com.sun.tools.javac.tree.JCTree qualid
  • 【网络安全】密码学概述
  • 『功能项目』更换URP场景【32】
  • 【BUUCTF】HardSQL
  • 交换两个变量数值的3种方法
  • 创建Hive表后,查看表结构发现中文注释乱码
  • 【C++模版初阶】——我与C++的不解之缘(七)
  • Maven使用指南的笔记
  • 笔试强训,[NOIP2002普及组]过河卒牛客.游游的水果大礼包牛客.买卖股票的最好时机(二)二叉树非递归前序遍历
  • uniapp使用uni-popup做底部弹出选项(vue3)
  • R语言中rds 文件是什么,都保存了什么数据,详解
  • 宠物浮毛对身体危害竟这么大?再不预防就来不及了
  • Selenium4.0详细介绍
  • 龙芯+FreeRTOS+LVGL实战笔记(新)——05部署主按钮
  • 从零开始,认识游戏设计师(4)体验源于设计师②
  • 数据结构----链表
  • C# 特性与属性的区别
  • iOS 中,用户点击一个按钮到响应的全部流程
  • 【网络安全】服务基础第二阶段——第二节:Linux系统管理基础----Linux统计,高阶命令
  • 利用Spring Boot打造图书个性化推荐平台
  • C语言练习题之 数组中出现次数超过一半的数
  • C# 通过拖控件移动窗体
  • MySQL · 性能优化 · 提高查询效率的实用指南(上)
  • 第十四节:学习Springboot 的restful接口风格(自学Spring boot 3.x的第三天)
  • ROADM(可)-介绍
  • 【Linux网络编程】协议|OSI模型|TCP/IP模型|局域网通信|跨网络通信|地址管理|流程图