(十九)C#编程基础复习——交错数组
特此声明:本教程内容可能有部分参照其他博主的观点或描述,但始终不影响我学习的热情,代码全部自己手工敲打,编辑此教程目的不是为了博取大家眼球,也不是为利益所驱,只是纯属为了方便自己学习,编辑的过程中也让自己加深了对C#各个基础的印象,同时也让自己编码过程更加流畅顺利,最后还能帮助到有需要的人,代码都是自己亲测有效,如有侵权可以联系本人删除。
C#中的交错数组其实就是元素为数组的数组,换句话说就是交错数组中的每个元素都可以是维度和大小不同的数组,所以有时交错数组也称为“数组的数组”。这一节比较复杂,用到的时候可以再深入挖掘,多敲代码练习总会出奇迹。
一、声明交错数组
交错数组声明语法:
data_type[][]array_name;
假如要声明一个具有三个元素的一维交错数组,并且数组中的每个元素都是一个一维的整型数组,示例如下:
int [] [] arr=new int [3][];
二、初始化交错数组
和普通数组相同,交错数组也需要初始化后才可以使用,可以使用下面的方式初始化一个交错数组。
int [] [] arr=new int [3][];//定义一个交错数组
arr[0]=new int[5];//对数组的第一个元素初始化
arr[1]=new int[4];//对数组的第二个元素初始化
arr[2]=new int[2];//对数组的第三个元素初始化
上面的交错数组中包含三个元素,第一个元素使长度为5的整型数组,第二个元素使长度为4的整型数组,第三个元素是长度为2的整型数组。
除了上面的方法外,还可以直接使用具体的值来填充数组,这种情况下就不需要再设定数组的大小了,如下:
int [][] arr=new int [3][];//定义一个交错数组
arr[0]=new int[]{1,2,3,4,5};
arr[1]=new int []{6,7,8,9};
arr[2]=new int []{10,11};
还可以在声明数组时,直接将数组初始化,如下:
int [][] arr=new int [][]{new int []{1,2,3,4,5},new int []{6,7,8,9},new int []{10,11}};
上面的声明方式还有一种简写方式,如下:
int [][]arr={new int[]{1,2,3,4,5},new int []{6,7,8,9},new int []{10,11}};
注意:不能从元素初始化中省略new运算符,因为不存在元素的默认初始化。
三、访问数组中的元素
以上面定义的交错数据arr为例,可以使用如下所示的方法来获取数组中的每个元素或者为指定的元素赋值:
int a=arr[0][1];//变量a的值为:2
arr[2][1]=0; //将交错数组中第三个数组元素中的第二个元素赋值为0
四、交错数组和多维数组
交错数组中的元素不仅可以是一维数组,还可以是多维数组,例如下面的代码定义了一个包含三个二维数组元素的一维交错数组:
int [][,] arr=new int[3][,]{new int[,]{{1,1},{2,3}},new int[,]{{5,8},{13,21},{34,55}},new int[,]{{89,144},{233,344},{610,987}}};
对于这样的交错数组,在访问数组中的每个元素时也需要做出相应的改变,如下:
int a=arr[1][1,1];//变量a的值为21
int b=arr[2][0,0];//变量b的值为89
示例代码一(遍历交错数组中的内容):
int[][] arr = new int[3][] { new int[] { 31, 22, 16, 88 }, new int[] { 21, 54, 6, 77, 98, 52 }, new int[] { 112, 25 } };
//遍历数组
for(int i=0;i<arr.Length;i++)
{
for(int j = 0; j < arr[i].Length;j++)
{
Console.Write(arr[i][j] + " ");
}
Console.WriteLine();
}
Console.ReadLine();
运行结果:
提示:示例用到了Length属性,它是数组的一个属性,代表数组的长度(元素的个数)。
示例代码二(使用交错数组记录学生不同学科的成绩):
string[] names = { "小明", "小红", "小强" };
string[] course = { "语文", "数学", "英语" };
int[][] ar= { new int[] { 98, 85, 90 }, new int[] { 91, 95, 93 }, new int[] { 88, 89, 97 }, };
for(int i=0;i<names.Length;i++)
{
string str = "";
for(int j = 0; j < ar[i].Length;j++)
{
str += course[j] + "" + ar[i][j] + ",";
}
Console.WriteLine("{0}的成绩为:{1}", names[i],str);
}
Console.ReadLine();
运行结果:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
2019-11-15 (二)ADO.NET数据库连接操作方式