您的位置:首页 > 编程语言 > C#

C#数组详解

2016-05-15 20:07 387 查看
经过C、C++、Java的洗礼,对于C#的数组没有深究,使用时却发现严重的问题。

写这篇文件来剖析一下C#中坑过我的数组。

感谢:Unity官方案例精讲

C#中有3种数组结构

1. 一维数组

2. 多维数组

3. 交叉数组

对于一维数组我就不过多的解释。

多维数组,这里选择二维数组进行讲解,多维数组中每一行元素的列数必须是相等的。

如图



值得注意的是:

声明多维数组是必须制定行和列数,即数组元素必须固定。

m行

二维数组的示例:

//二维数组
int[,] a = new int[2, 2];
a[0, 0] = 1;
a[0, 1] = 2;
Debug.Log(a.Length); //输出为4 ,只要二维数组被创立a.Length的长度就被固定。多维同理。

//三维数组
int[,,] b = new int[3, 3, 3];
b[0, 0, 0] = 4;
b[0, 0, 1] = 5;
Debug.Log(b.Length); //输出27


交叉数组和多维数组的一个重要的区别,比如我们分别用多维和交叉定义一个二维数组。

多维数组在定义的时候是int[,];

交叉数组则为int[][];

而交叉数组每一行元素的列数可以不相等。

如图



值得注意的是:

声明交叉数组是可以制定数组的行数,而列数不能指定。

交叉数组的每一行元素都是一个一维数组。

交叉数组示例:

int[][] arr = new int[2][]; //声明一个2行的交叉数组

for (int i = 0; i < 2; i++)
{
arr[i] = new int[i + 1]; //遍历声明每一行的数组
}

arr[0][0] = 1;
arr[1][0] = 2;

foreach (int[] a in arr)
{
foreach (int b in a)
{
Debug.Log(b); //遍历交叉数组每一个向量
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c#