标签:
多维数组:行数和列数在定义时已确定
string[,] arr = new string[2, 3]; arr[0, 0] = "坐标:1-1"; arr[0, 1] = "坐标:1-2"; arr[0, 2] = "坐标:1-3"; arr[1, 0] = "坐标:2-1"; arr[1, 1] = "坐标:2-2"; arr[1, 2] = "坐标:2-3"; int m = arr.GetLength(0); // 行数 int n = arr.GetLength(1); // 列数 StringBuilder str = new StringBuilder(); // 类似于String类型变量 for (int i = 0; i < m; i++) { for (int j = 0; j < n; j++) { str.Append(arr[i, j] + " "); } } Console.WriteLine(str.ToString());
锯齿数组:行数确定,列数不定,数组里套数组。
int[][] arr = new int[3][]; arr[0] = new int[] { 1, 2, 3, 4 }; arr[1] = new int[] { 100 }; arr[2] = new int[] { 10, 20, 30 }; foreach (int[] i in arr) { foreach (int x in i) { Console.WriteLine(x); // 遍历所有元素 } } Console.WriteLine(arr[2][2]); // 访问单一元素,注意和多维素组的差别,会输出30
①克隆数组,就是复制一份新的
int[] arr = new int[] { 1, 2, 3, 4}; int[] arr2 = (int[])arr.Clone(); for (int i = 0; i < arr2.Length; i++) { Console.Write(arr2[i]); }
命名空间:using System.Collections;
ArrayList就是传说中的动态数组,它可以动态的增加和减少元素,另外它可以存储任意个数和任意类型的元素。
ArrayList list = new ArrayList(); // 声明变量 list.Add(2); list.Add("北京"); list.Add(new int[] { 2, 4, 6 }); list.Add("南京"); list.Add(3); foreach (var p in list) { Console.Write(p.ToString() + " | "); // 输出:2 | 北京 | System.Int32[] | 南京 | 3 | }
元素类型相同的转换
ArrayList list = new ArrayList(); list.Add(1); list.Add(2); list.Add(3); // 转换方式1:ToArray() int[] list2 = (int[])list.ToArray(typeof(int)); // 转换方式2:CopyTo() int[] list3 = new int[list.Count]; list.CopyTo(list3);
元素类型不同的转换
ArrayList arr = new ArrayList(){ "北京", 1}; //往数组中添加不同类型的元素 object[] arr2 = (object[])arr.ToArray(typeof(object)); //正确 string[] arr3 = (string[])arr.ToArray(typeof(string)); //错误
标签:
原文地址:http://www.cnblogs.com/ysz12300/p/5595907.html