文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

C#中的矩形数组(多维数组)和锯齿数组的实现

2023-05-15 08:21

关注

(一)矩形数组

在C#中,矩形数组(rectangular array),又称多维数组,是使用多个索引访问其元素的数组。

1. 二维数组的声明:

<baseType>[,] <name>;

例如,声明和初始化一个二维数组doubleArray,其基本类型是double,3行4列:

double[,] doubleArray=new double[3,4];
double[,] doubleArray={{1,2,3,4},{5,6,7,8},{9,10,11,12}};

当然,我们还可以这样对doubleArray进行定义和初始化:

double[,] doubleArray=new double[3,4]{{1,2,3,4},{5,6,7,8},{9,10,11,12}};

2. 根据索引访问数组中的元素

访问数组中行号为1,列号为2(第2行,第3列)的数组元素:

Console.WriteLine(doubleArray[1,2]);//控制台输出7

3. 遍历二维数组

(1)获取多维数组的维度

int rank=doubleArray.Rank;//rank=2,表示doubleArray数组的维度为2

(2)for循环遍历

//for循环遍历doubleArray数组
for(int i=0;i<doubleArray.GetLength(0);i++)//GetLength(0)获取数组行数
{
    for(int j=0;j<doubleArray.GetLength(1);j++)//GetLength(1)获取数组列数
    {
        Console.Write(doubleArray[i,j]+"\t");//打印索引为[i,j]的数组元素
    }
    Console.WriteLine();//打印完一行换行
}

(3)foreach遍历

//foreach遍历doubleArray数组
foreach(double item in doubleArray)
{
    Console.Write(item + "\t");//依次输出doubleArray数组中的元素
}

4. 其他多维数组

其他多维数组需要更多的逗号隔开,声明格式:

<baseType>[,,] <name>;//三维数组
<baseType>[,,,] <name>;//四维数组
<baseType>[,,,,] <name>;//五维数组
...

(二)锯齿数组

上述的矩形数组,它要求数组每一行的元素个数相同,但对于锯齿数组(jagged array),它可以使数组中每行的元素个数不同。
锯齿数组又称为交错数组,数组中的每一个元素都是另一个数组,所有锯齿数组也叫作数组的数组,但是要注意,这些数组都必须要有相同的基本类型。

1. 锯齿数组的声明和初始化

(1)锯齿数组声明

int[][] jaggedArray;//声明一个int型锯齿数组jaggedArray

(2)锯齿数组初始化

初始化jaggedArray数组含有2个子数组(即数值中2个元素为另外2个数组)

jaggedArray = new int[2][];//初始化jaggedArray数组
jaggedArray[0] = new int[3] { 1, 2, 3 };//第一个元素为一个长度为3的一维数组
jaggedArray[1] = new int[4] { 4, 5, 6, 7 };//第二个元素为一个长度为4的一维数组

还可以改进锯齿数组的声明和初始化,将声明和初始化写在一行代码:

int[][] jaggedArray = new int[2][] { new int[] { 1, 2, 3 }, new int[] { 4, 5, 6, 7 } };

2. 遍历锯齿数组

(1)for循环遍历

 //for循环遍历jaggedArray数组
for(int i = 0; i < jaggedArray.Length; i++)//遍历数组的行数
{
    for (int j = 0; j < jaggedArray[i].Length; j++)//遍历数组中每一个行的元素(一维数组)
    {
        Console.Write(jaggedArray[i][j]+"\t");//打印jaggedArray[i][j]
    }
    Console.WriteLine();//输出完一行换行
}

(2)foreach遍历

//foreach遍历jaggedArray数组
foreach(int[] int_item in jaggedArray)//遍历锯齿数中的每个子数组,类型为int[]
{
    foreach(int item in int_item)//遍历每个子数组中的元素,类型为int
    {
        Console.Write(item + "\t");//依次输出锯齿数组中的元素
    }
}

总结

使用锯齿数组的语法,不管是数组的声明和初始化,还是数组的遍历,都要比矩形数组复杂的多。在大多数情况下,使用矩形数组比较简单,它也是一种比较简单的存储方式。但是,有时必须使用锯齿数组,且工作效率并不会因此而降低。

到此这篇关于C#中的矩形数组(多维数组)和锯齿数组的实现的文章就介绍到这了,更多相关C# 矩形数组和锯齿数组内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯