//一维数组的定义和元素遍历访问:数组必须在访问前初始化,初始化有两种方式, int[] intArray1 = new int[3];//方法1:指定数组的大小(此处可用变量),使用new初始化所有数组元素,默认值为0 int[] intArray2 = { 1, 2, 3 };//方法2:以字面形式指定数组的完整内容 int[] intArray3; intArray3 = new int[4];//此时也可以,先定义,使用时再进行初始化 //遍历一维数组方法1 for (int i = 0; i < intArray2.Length; i++) { Console.WriteLine("intArray2的第{0}个元素是{1}", i + 1, intArray2[i]); } //遍历一维数组方法2 foreach (int i in intArray2) { Console.WriteLine("{0}", i); } //多维数组的定义和访问 int[,] intArray4 = new int[3, 4];//定义一个3*4的二维int数组 int[,] intArray5 = { { 1, 2, 3 }, { 2, 3, 4 }, { 3, 4, 5 }, { 4, 5, 6 } };//定义一个4*3的二维int数组 //遍历二维数组方法1 //GetLowerBound(0)获取指定维度的下限 GetUpperBound(0)获取指定维度的上限 //GetValue(1,1),获取指定的二维数组的值 for (int i = intArray5.GetLowerBound(0); i <= intArray5.GetUpperBound(0); i++) { for (int j = intArray5.GetLowerBound(1); j <= intArray5.GetUpperBound(1); j++) { Console.WriteLine("intArray5的第{0}组第{1}个元素是{2}", i + 1, j + 1, intArray5.GetValue(i, j)); } } //遍历二维数组方法2 //GetLength(0)获取指定维度的长度 for (int i = 0; i < intArray5.GetLength(0); i++) { for (int j = 0; j < intArray5.GetLength(1); j++) { Console.WriteLine("intArray5的第{0}组第{1}个元素是{2}", i + 1, j + 1, intArray5.GetValue(i, j)); } } //遍历二维数组方法3 将所有元素一一遍历出 foreach (int i in intArray5) { Console.WriteLine("intArray5的元素是{0}", i); } //交错数组的定义和访问 //定义方法1 int[][] intArray6 = new int[4][]; intArray6[0] = new int[3]; intArray6[1] = new int[3]; intArray6[2] = new int[3]; intArray6[3] = new int[3];//此时实现的数组和上面的多维数组一样,但交错数组允许里面的数组元素不同。 //定义方法2 int[][] intArray7 = { new int[] { 1, 2 }, new int[] { 2, 3, 4 }, new int[] { 3 }, new int[] { 4, 5, 6, 7 } }; //遍历方法 for (int i = 0; i < intArray7.Length; i++) { for (int j = 0; j < intArray7[i].Length; j++) { Console.WriteLine("intArray7的第{0}组第{1}个元素是{2}", i + 1, j + 1, intArray7[i][j]); } } //数组的排序 //利用Sort方法排序,由小到大 int[] intArray = { 2, 8, 5, 4, 6 }; Array.Sort(intArray); foreach (int i in intArray) { Console.WriteLine("{0}", i); } //利用关键字排序 int[] intArray1 = { 5, 3, 2, 4, 1 };//关键字数组 string[] strArray = { "王五", "张三", "郑二", "李四", "于大" }; Array.Sort(intArray1, strArray);//将strarray的元素与intarray1中元素一一对应,然后按intarray1中元素整体排序 for (int i = 0; i < intArray1.Length; i++) { Console.WriteLine("{0}->{1}", intArray1[i], strArray[i]); } //利用BinarySearch方法搜索元素,返回所搜索元素的下标,如果重复返回第一个 //定义数组 int[] myArr = { 1, 2, 3, 4, 5 }; //搜索 int target = 3; int result = Array.BinarySearch(myArr, target); //2 Console.WriteLine("{0}的下标为{1}", target, result); //2 //判断包含 bool result1 = myArr.Contains(target); Console.WriteLine("myArr中是否包含{0}:{1}", target, result1); //复制数组 //copy int[] copymyArr = new int[3]; Array.Copy(myArr, copymyArr, 3);//将myArr中前3个元素复制给copymyArr foreach (int i in copymyArr) { Console.WriteLine("{0}", i); } //利用CopyTo复制数组 int[] copytomyArr = new int[7]; myArr.CopyTo(copytomyArr, 2);//将myArr复制给copytomyArr,从第三个元素开始 foreach (int i in copytomyArr) { Console.WriteLine("{0}", i); } //利用Reverse方法反转数组 int[] myArr1 = { 1, 2, 3, 4, 5 }; Array.Reverse(myArr1); foreach (int i in myArr1) { Console.WriteLine("{0}", i); } //利用createInstance创建动态数组 int length = 5; Array arr = Array.CreateInstance(Type.GetType("System.Int32"), length); Random r = new Random(); //声明一个随机数对象 //循环赋值、输出 for (int i = 0; i < arr.Length; i++) { int j = r.Next(100); arr.SetValue(j, i);//用1~100的随即数赋值 Console.WriteLine("arr[{0}]={1}", i,arr.GetValue(i)); }