数组的定义、遍历、常用方法

来源:互联网 发布:淘宝网网址是多少 编辑:程序博客网 时间:2024/06/05 00:15

            //一维数组的定义和元素遍历访问:数组必须在访问前初始化,初始化有两种方式,            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));            }


原创粉丝点击