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

前言

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

交错数组是什么呢?

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

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

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

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

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

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

基本概念:数组的数组

声明

cs 复制代码
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}};

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

使用

长度获取

列获取:同二维数组

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

cs 复制代码
arr[0].Length;

获取元素:直接索引

修改元素:直接赋值

遍历:

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

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

请期待我的下一篇博客。

相关推荐
StringerChen几秒前
Qt ui提升窗口的头文件找不到
开发语言·qt
数据小爬虫@6 分钟前
如何利用PHP爬虫获取速卖通(AliExpress)商品评论
开发语言·爬虫·php
yngsqq44 分钟前
cad c# 二次开发 ——动态加载dll 文件制作(loada netloadx)
c#
java1234_小锋1 小时前
MyBatis如何处理延迟加载?
java·开发语言
FeboReigns1 小时前
C++简明教程(10)(初识类)
c语言·开发语言·c++
学前端的小朱1 小时前
处理字体图标、js、html及其他资源
开发语言·javascript·webpack·html·打包工具
摇光932 小时前
js高阶-async与事件循环
开发语言·javascript·事件循环·宏任务·微任务
沐泽Mu2 小时前
嵌入式学习-QT-Day09
开发语言·qt·学习
小猿_002 小时前
C语言实现顺序表详解
c语言·开发语言
余~~185381628002 小时前
NFC 碰一碰发视频源码搭建技术详解,支持OEM
开发语言·人工智能·python·音视频