我自己写的
List<List<int>> dList = new List<List<int>>(); List<int> list = new List<int>(new int []{10,1,13,16,17}); List<int> list2 = new List<int>(new int[] { 21, 2, 23, 26, 27 }); dList.Add(list); dList.Add(list2); for (int i = 0; i < dList.Count; i++) { for (int j = 0; j < dList[i].Count; j++) { Console.Write(dList[i][j]+" ,"); } Console.WriteLine("第{0}行数据", i); }
最近在解决一个地图图层操作的问题,图层操作的原理大致是这样的:- 每层图片划分为同样大小的网格,划分后可以看成一个二维数组,每一个网格代表数组中的一个元素,将其转化 为一 维数组(后面还会增加一维,由于对超过二维的数组有一种天然的的恐惧感,这里就把其转化为一维的了);
- 将每一层看做一维数组中的一个元素,这样对图层的操作就变成一个对二维数组的操作;
- 预设的目标是能够实现动态的增加图层,增加的图层放在最上层;
- 相邻两个图层之间能够交换顺序,即数组list[0]和数组list[1]能够交换位置;
- 能够删除某一指定的层;
就如上上面提到的一样,我想到的解决办法就是使用二维数组,但我需要的图层数目是动态的增加和减少的,而且某一层的顺序位置是可以变化的,这就涉及到数组的添加,删除,顺序变化,这些是普通的二维数组是实现不了的,于是就想到是用List,然后就在网上查了一些资料和MSDN文档,写了下面的测试代码:
int[] a = new int[5];
int[] b = new int[5];
int[] c = new int[5];
int[] d = new int[5];
int[] e = new int[5];
int[] f = new int[5]; //创建一维数组
List<int[]> list = new List<int[]>();
list.Add(a);
list.Add(b);
list.Add(c);
list.Add(d); //添加图层
list[0][3] = 20;
list[1][2] = 2; //这里和普通二维数组的使用[,] 不一样
list[2][3] = 40;
list.Reverse(1,2); //图层交换
我自己写的
List<List<int>> dList = new List<List<int>>(); List<int> list = new List<int>(new int []{10,1,13,16,17}); List<int> list2 = new List<int>(new int[] { 21, 2, 23, 26, 27 }); dList.Add(list); dList.Add(list2); for (int i = 0; i < dList.Count; i++) { for (int j = 0; j < dList[i].Count; j++) { Console.Write(dList[i][j]+" ,"); } Console.WriteLine("第{0}行数据", i); }