C#交错数组知识点分析
什么是交错数组
交错数组(Jagged Array),是指一个数组中的元素也是一个数组,可以类比于一个“数组的数组”。 交错数组最大特点就是可以先定义第一维的长度,然后再分别为第二维的每个数组定义长度,这样可以建立不规则的二维数组。
交错数组的定义
在C#中,定义交错数组的方法与二维数组类似,只需要在定义时将第一维的数组长度确定即可。
int[][] jaggedArray = new int[3][];
jaggedArray[0] = new int[] { 1, 2, 3 };
jaggedArray[1] = new int[] { 4, 5, 6, 7, 8 };
jaggedArray[2] = new int[] { 9 };
上面的示例代码中,定义了一个长度为3的交错数组,第一维的长度为3,在初始化时可以为每个元素(也是数组)定义不同长度的数组。
交错数组的遍历
交错数组的遍历需要两个for循环,外层循环来遍历第一维数组,内层循环来遍历内部的数组。在遍历时,需要先确定第一维数组的长度,再循环遍历每个数组。
for (int i = 0; i < jaggedArray.Length; i++)
{
for (int j = 0; j < jaggedArray[i].Length; j++)
{
Console.Write("{0} ", jaggedArray[i][j]);
}
Console.WriteLine();
}
上述示例代码中,先使用外层循环遍历交错数组的第一维元素,内层循环遍历每个元素的内部数组元素,最后将元素输出。
交错数组的示例应用
假设有一个学校在不同年级开设了多个班级,每个班级学生人数不同,需要记录各年级班级人数的二维数组。使用交错数组可以方便的实现。
int[][] classSize = new int[3][];
classSize[0] = new int[] { 30, 35, 28 };
classSize[1] = new int[] { 40, 38 };
classSize[2] = new int[] { 25, 27, 30, 32 };
上述示例代码中,定义了一个长度为3的交错数组,第一维分别代表三个年级,每个年级内部又包含了不同长度的数组,用来记录不同班级的人数。通过这种方式可以方便地记录各个班级人数,使用 classSize[0][1]
可以获取第一年级第二个班级的人数。
另外,也可以使用交错数组来记录不规则的图形,比如:
string[][] shape = new string[5][];
shape[0] = new string[] { " ", " ", "*", " ", " " };
shape[1] = new string[] { " ", "*", "*", "*", " " };
shape[2] = new string[] { "*", "*", "*", "*", "*" };
shape[3] = new string[] { " ", "*", "*", "*", " " };
shape[4] = new string[] { " ", " ", "*", " ", " " };
上述示例代码中,定义了一个长度为5的交错数组,用来记录一个星号组成的菱形图形。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#交错数组知识点分析 - Python技术站