C#数组详解
2016-05-15 20:07
387 查看
经过C、C++、Java的洗礼,对于C#的数组没有深究,使用时却发现严重的问题。
写这篇文件来剖析一下C#中坑过我的数组。
感谢:Unity官方案例精讲
C#中有3种数组结构
1. 一维数组
2. 多维数组
3. 交叉数组
对于一维数组我就不过多的解释。
多维数组,这里选择二维数组进行讲解,多维数组中每一行元素的列数必须是相等的。
如图
![](https://oscdn.geek-share.com/Uploads/Images/Content/202007/21/f65578c794cb1187051bc81ae9f3757d)
值得注意的是:
声明多维数组是必须制定行和列数,即数组元素必须固定。
m行
二维数组的示例:
交叉数组和多维数组的一个重要的区别,比如我们分别用多维和交叉定义一个二维数组。
多维数组在定义的时候是int[,];
交叉数组则为int[][];
而交叉数组每一行元素的列数可以不相等。
如图
![](https://oscdn.geek-share.com/Uploads/Images/Content/202007/21/b9265a62540512c3ade277be39722c20)
值得注意的是:
声明交叉数组是可以制定数组的行数,而列数不能指定。
交叉数组的每一行元素都是一个一维数组。
交叉数组示例:
写这篇文件来剖析一下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#调用COM组件
- C#实现把指定数据写入串口
- C#动态创建button的方法
- C#中抽象方法与虚拟方法的区别
- c#中虚函数的相关使用方法
- C#实现给图片加水印的方法
- C#使用加边法计算行列式的值
- C#实现多线程的同步方法实例分析
- C#中尾递归的使用、优化及编译器优化
- C#中的delegate委托类型基本学习教程
- C#实现子窗体与父窗体通信方法实例总结
- C#通用邮件发送类分享
- 举例讲解C#中自动实现的属性
- C#中this的用法集锦
- C#数据结构之顺序表(SeqList)实例详解
- C#.NET获取拨号连接的宽带连接方法
- C#异步绑定数据实现方法
- C#实现AddRange为数组添加多个元素的方法
- C#中Equality和Identity浅析
- C#比较二个数组并找出相同或不同元素的方法