C#基础——数组

数组

一、什么是数组
数组是包含若干个相同类型的变量,这些变量都可以通过索引(从0开始)进行访问。数组中的变量称为数组的元素,数组能够容纳元素的数量称为数组的长度。数组中的每个元素都具有唯一的索引与其相对应。
数组是通过指定数组的元素类型,数组的维数及数组每个维度的上限和下限来定义的,即一个数组的定义需要包含以下几个要素。
元素类型。
数组的维数。
每个维数的上下限。
数组的元素表示某一种确定的类型,如整数或字符串等。那么数组的确切含义是什么呢?数组类型的值是对象,数组对象被定义为存储数组元素类型的一系列位置。也就是说,数组是一个存储一系列元素位置的对象。数组中存储位置的数量由数组的下标和长度来确定。
数组类型是从抽象类型Array派生的引用类型,通过new运算符创建数组并将数组元素初始化为它们的默认值。数组可以分为一维数组,二维数组和多维数组等。
(数组最大的问题就是长度的限制;数值里面所保存的信息类型全部都是一致的。)

二、一维数组
一维数组即数组的维数为1。一维数组就好比一个大型的零件生成公司,而公司中的各个车间(如车间1,车间2,车间3等,这些名词相当于数组中的索引号)就相当于一维数组中的各个元素,这些车间既可以单独使用,也可以一起使用。
2.1 数组定义
数据类型[] 数组名=new 数据类型[数组长度];

            //数据类型[]数组的名称=new数组类型[数组的长度]
            //ints的数组的元素类型是int元素的个数(长度)为5
            int[] ints = new int[5];
            //给每个元素赋值
            ints[0] = 10;
            ints[1] = 20;
            ints[2] = 30;
            ints[3] = 40;
            ints[4] = 50;
            //输出元素
            //i实际上就已经变成了数组的下标
            for (int i = 0; i < ints.Length; i++)
            {
                Console.WriteLine(ints[i]);
            }
            Console.ReadKey();

数据类型[] 数组名={值1,值2,值3,值4};

            //由初始化的值来决定数组的长度
            int[] ints = { 1, 2, 3, 4, 5, 6 };
            Console.WriteLine("长度为:{0}",ints.Length);
            foreach (int i in ints)
            {
                Console.WriteLine(i);
            }
            Console.ReadKey();

三、二维数组
二维数组即数组的维数为2,它相当于一个表格。
【
3.1 数组的定义
数据类型[,] 数组名=new 数据类型[数值1,数值2];
数据类型[,] 数组名=new 数据类型[,]{{值1,值2},{值1,值2},{值1,值2}};

int[,] ints = new int[3, 2];
            //循环赋值
            for (int i = 0; i < ints.Length/2; i++)
            {
                for (int j = 0; j < ints.Length/3; j++)
                {
                    ints[i, j] = 10;
                }
            }

            for (int i = 0; i < ints.Length / 2; i++)
            {
                for (int j = 0; j < ints.Length / 3; j++)
                {
                    Console.WriteLine(ints[i,j]);
                }
            }

四、数组的基本操作
4.1 如何遍历数组
使用foreach语句可以实现数组的遍历功能,用foreach语句访问数组中的每个元素,而不需要确切的知道每个元素的索引号。

            int[] ints = { 100, 200, 300, 400, 500 };
            foreach (int item in ints)
            {
                Console.WriteLine(ints);
            }

4.2 删除数组中的元素

            int[] ints = { 100, 200, 300, 400, 500 };
            Console.WriteLine("请输出要删除的数组的第几个元素");
            int index = int.Parse(Console.ReadKey());
            for (int i = index; i < ints.Length-index; i++)
            {
                ints[i] = ints[i + 1];
            }
            ints[index] = 0;

4.3 冒泡排序

            int[] ints = { 200, 100, 300, 400, 500 };
            for (int i = 0; i < ints.Length; i++)
            {
                for (int j = 0; j < ints.Length; j++)
                {
                    if (ints[j]>ints[i])
                    {
                        int temp = ints[j];
                        ints[j] = ints[j + 1];
                        ints[j + 1] = temp;
                    }
                }
            }

4.4 Array类的Sort和Reverse排序方法
Sort方法用于对一维Array数组中的元素进行排序。

            int[] ints = { 1, 2, 3, 6, 8, 9, 25, 39 };
            Array.Sort(ints);
            foreach (int i in ints)
            {
                Console.WriteLine(i);
            }

在这里插入图片描述
Reverse方法用于反转一维数组元素的顺序。但是不会进行排序。
(反转从最后一位输出到第一位;反转 不排序)

            int[] ints = { 11, 2, 69, 6, 8, 9, 25, 39 };
            Array.Reverse(ints);
            foreach (int i in ints)
            {
                Console.WriteLine(i);
            }

在这里插入图片描述
4.5 合并数组
数组的合并实际上就是将对个一维数组合并成一个一维数组,或者将对个一维数组合并成为一个二维数组或多维数组。

            int[] inti = { 1, 2, 3, 4, 5, 6 };
            int[] intj = { 7, 8, 9, 10, 11, 12};
            int[] intz = new int[inti.Length + intj.Length];
            for (int i = 0; i < intz.Length; i++)
            {
                if (i<inti.Length)
                {
                    intz[i] = inti[i];
                }
                else
                {
                    intz[i] = intj[i - inti.Length];
                }
            }

4.6 拆分数组
数组的拆分实际上就是将一个一维数组拆分成多个一维数组,或是将多维数组拆分成多个一维数组或多个多维数组。

            int[] array1 = { 1, 2, 3, 4, 5, 6 };
            int[] array2 = new int[array1.Length / 2];
            int[] array3 = new int[array1.Length / 2];
            for (int i = 0; i < array1.Length; i++)
            {
                if (i<5)
                {
                    array2[i] = array1[i];
                }
                else
                {
                    array3[i - 5] = array1[i];
                }
            }

猜你喜欢

转载自blog.csdn.net/weixin_39856293/article/details/82803466