C#中的二维数组与交错数组
·
这两种数组,与之前文章中所提到的一维数组的声明与使用是大同小异的(详见上一篇一维数组),故本文重点以代码的形式直接展示。
首先是二维数组的声明:
int[,] arr1;
int[,] arr2 = new int[3,3];
int[,] arr3 = new int[3,3]{{1,2,3},
{4,5,6},
{7,8,9}};
int[,] arr4 = new int[,]{{1,2,3,4},
{5,6,7,8}};
int[,] arr5 ={{1,2,3},
{4,5,6},
{7,8,9}};
其次是二维数组的相关基础使用:
int[,] arr = {{1,2,3},
{4,5,6}};
//获取二维数组的行数与列数
int line = arr.GetLength(0);
int column = arr.GetLength(1);
//遍历二维数组
for(int i = 0;i<arr.GetLength(0);i++)
{
for(int j = 0;j<arr.GetLength(1);j++)
{
Console.WriteLine(arr[i,j]);
}
}
//二维数组元素的增加
int[,] arr2 = new int[3,3];
for(int i = 0;i<arr.GetLength(0);i++)
{
for(int j = 0;j<arr.GetLength(1);j++)
{
arr2[i,j] = arr[i,j];
}
}
arr = arr2;
arr[2,0] = 7;
arr[2,1] = 8;
arr[2,2] = 9;
//二维数组元素的减少
int[,] arr3 = new int[1,3];
for(int i = 0;i<arr3.GetLength(0);i++)
{
for(int j = 0;j<arr3.GetLength(1);j++)
{
arr3[i,j] = arr[i,j];
}
}
arr3 = arr;
//二维数组元素的查找(按索引)
for(int i = 0;i<arr.GetLength(0);i++)
{
for(int j = 0;j<arr.GetLength(1);j++)
{
if(i==0&&j==1)
{
Console.WriteLine(arr[i,j]);
break;
}
}
}
//二维数组元素的查找(按内容)
for(int i = 0;i<arr.GetLength(0);i++)
{
for(int j = 0;j<arr.GetLength(1);j++)
{
if(arr[i,j] == 3)
{
Console.WriteLine(arr[i,j]);
}
}
}
接下来我们介绍交错数组,其可以被看作是“以数组为元素的数组”,其声明方式为:
int[][] arr1;
int[][] arr2 = new int[2][];//列数不可以固定
int[][] arr3 = new int[3][] {new int[] {1,2,3},
new int[] {4,5},
new int[] {6,7,8}};
int[][] arr4 = new int[][] {new int[] {1,2,3},
new int[] {4,5,6,7},
new int[] {9,10,11,12,13}};
int[][] arr5 = {new int[] {1,2,3},
new int[] {1,2},
new int[] {1}};
其次是与交错数组相关的基础使用:
int[][] arr = {new int[] {1,2,3},
new int[] {4,5}};
//获取数组的行数与列数
int line = arr.GetLength(0);
int column1 = arr[0].Length;
int column2 = arr[1].Length;//交错数组的每行列数不同,需要单独获取
//交错数组的遍历
for(int i = 0;i<arr.GetLength(0);i++)
{
for(int j = 0;j<arr[i].Length;j++)
{
Console.WriteLine(arr[i][j]);
}
}
更多推荐



所有评论(0)