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

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


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值