【C#】数组


数组的声明

数组可以一次性声明多个相同类型的变量

  #region 数组的声明方式
            //数组的声明方式
            //第一种
            int[] nums = new int[10];//长度为10.索引是0-9 int类型的 下标也是0-9
            //第二种
            int[] nums2 = new int[] { 1, 2, 3, 4, 5 };
            //  这个数组只能存5个数
            //第三种
            int[] nums3 = new int[3] {1,2,3 };
            //[]中是几,后面大括号中就只能输入几个数字,规定了字符长度
            //第四种
            int[] nums4 = { 1, 2, 3, 4, 5 };//只能输入5个字符。
 #endregion 

数组的存值和取值

#region 数组的存值
            //数组的存值
            int[] nums = new int[10];

            nums[5] = 23;
            nums[7] = 100;
            //数组的存值和取值都是通过下标或者索引来进行赋值和取值的。
            
            Console.WriteLine("nums[5]");
            Console.WriteLine("nums[7]");
            Console.ReadKey();
 #endregion

#region 数组的存值和取值
            //赋值
            int[] nums = new int[10];

            for (int i=0;i<5;i++)
            {
                nums[i] = 10;
            }
            //取值
            //遍历
            for (int i=0;i<5;i++)
            {
                Console.WriteLine(nums[i]);
            }
            Console.ReadKey();
#endregion

数组求最值 求和 求平均值

#region 数组拓展练习
            //从一个正数组中取出最大的整数,最小整数,总和,平均值
            int[] nums = new int[] { -12, 90, -56, 89, 0, 345 };
            int max = int.MinValue;//求最大值
            int min = int.MaxValue;//求最小值的变量

            int sum = 0;
            for(int i=0;i<nums.Length;i++)
            {
                if(nums[i]>max)
                {
                    max = nums[i];
                }
                if(nums[i]<min)
                {
                    min = nums[i];
                }
                sum += nums[i];//求和

            }
            Console.WriteLine("和是{0},最大值是{1},最小值是{2},平均值是{3}", sum, max, min, sum / nums.Length);
            Console.ReadKey();
  #endregion 

//使用方法进行数组的求和

#region 数组的求和
            //计算一个整数组的所有元素的和

            Program.SumArray();
            Console.ReadKey();
        }
        //下面使用一个方法
        public static void SumArray()
        { 
            int[] numbers = new int[] { 1, 2, 3, 4, 5 };

            int sum = 0;
            for(int i =0;i<numbers.Length;i++)
            {
                sum += numbers[i];
            }
            Console.WriteLine("和为{0}", sum);
#endregion 

数组的排序

排序是从小到大或者从大到小
冒泡排序

#region 数组的排序
 //冒泡排序

            int[] nums = new int[] {98,23,45,43,};
            int temp = 0;

            for (int j = 0; j < nums.Length - 1; j++)
            {
                for (int i = 0; i < nums.Length - 1 - j; i++)
                {
                    if (nums[i] > nums[i + 1])
                    {
                        temp = nums[1];
                        nums[i] = nums[i + 1];

                        nums[i + 1] = temp;
                    }
                }
            }
            for(int i=0;i<nums.Length;i++)
            {
                Console.Write(nums[i] + "\t");
            }
            Console.ReadKey();
 //冒泡排序的第二种方法

            int[] nums = new int[] { 2, 43, 3, 1, 76 };
            Array.Sort(nums);

            for(int i=0;i<nums.Length;i++)
            {
                Console.WriteLine(nums[i] + "\t");
            }
            Console.ReadKey();
 #endregion

数组的反转

#region 反转

            int[] nums = new int[] {2,43,3,1,76 };
            //Array.Sort(nums);//排序
            //Array.Reverse(nums);//这个方法是反转
             
            //for (int i = 0; i < nums.Length; i++)
            //{
            //    Console.WriteLine(nums[i] + "\t");
            //}
            //下面是精简版的反转
            for(int i=nums.Length -1;i>=0;i--)
            {
                Console.WriteLine(nums[i] + "\t");
            }
            Console.ReadKey();
#endregion
#region 将一个字符串数组的元素的顺序进行反转
 			//第一种方法
            string[] text = { "我", "是", "好人" };
            for(int i=text.Length -1;i>=0;i--)
            {
                Console.WriteLine(text[i] + "\t");
            }
            Console.ReadKey();
            //第二种方法

            string[] text = { "我", "是", "好人" };
            Array.Reverse(text);
            for (int i=0;i<text.Length;i++ )
            {
                Console.WriteLine(text[i] + "\t");
            }
            Console.ReadKey();
            Console.ReadKey();


            //第三种方法

            string[] text = { "我", "是", "好人" };
            string temp = "";
            for(int i=0;i<text.Length /2;i++)
            {
                temp = text[i];
                text[i]= text[text.Length - i - 1];
                    text[text.Length - 1 - i] = temp;
            }
            for (int i = 0; i < text.Length; i++)
            {
                Console.WriteLine(text[i] + "\t");
            }
            Console.ReadKey();

#endregion

C# 中,数组是一种用于存储固定大小的同类型数据集合的数据结构。使用数组可以高效地处理多个相同类型的数据项。以下是 C# 数组的常见操作和使用方法: ### 声明和初始化数组C# 中,可以通过多种方式声明和初始化数组: - **一维数组**:`int[] numbers = new int[5];` 创建一个包含 5 个整数的一维数组。 - **直接初始化**:`int[] numbers = {1, 2, 3, 4, 5};` 在声明时初始化数组元素。 ### 访问数组元素 数组中的每个元素都可以通过索引访问,索引从 `0` 开始。例如: ```csharp int[] numbers = {1, 2, 3, 4, 5}; Console.WriteLine(numbers[0]); // 输出第一个元素 1 ``` ### 修改数组元素 可以直接通过索引修改数组中的元素值: ```csharp numbers[0] = 10; // 将第一个元素修改为 10 ``` ### 遍历数组 可以使用 `for` 或 `foreach` 循环遍历数组的所有元素: ```csharp foreach (int num in numbers) { Console.WriteLine(num); // 输出每个元素 } ``` ### 传递数组作为参数 数组可以作为参数传递给方法,以便在方法内部操作数组内容: ```csharp void PrintArray(int[] array) { foreach (int num in array) { Console.WriteLine(num); } } // 调用方法 int[] numbers = {1, 2, 3, 4, 5}; PrintArray(numbers); // 输出数组中的每个元素 [^1] ``` ### 使用 `params` 关键字 C# 提供了 `params` 关键字,允许将可变数量的参数作为数组传递给方法: ```csharp private static int Add(params int[] arr) { int sum = 0; foreach(var item in arr) { sum += item; } return sum; } // 调用方法 Add(1, 2, 3); // 返回 6 Add(new int[] {1, 2, 3}); // 返回 6 ``` 这简化了调用者代码,并允许传递一组相同类型的数据或完全不传递参数 [^2]。 ### 动态创建数组 可以使用 `new` 关键字动态创建数组,指定数组的大小: ```csharp int[] numbers = new int[5]; // 创建一个包含 5 个整数的数组 [^3] ``` ### 多维数组 C# 支持多维数组,包括矩形数组(规则的二维或多维数组)和交错数组数组数组): - **矩形数组**:`int[,] matrix = new int[3, 3];` 表示一个 3x3 的二维数组。 - **交错数组**:`int[][] jaggedArray = new int[][] { new int[] {1, 2}, new int[] {3, 4, 5} };` 表示一个数组数组。 ### 数组排序 C# 提供了内置的排序功能,可以使用 `Array.Sort()` 方法对数组进行排序: ```csharp int[] numbers = {5, 3, 8, 1}; Array.Sort(numbers); // 排序后变为 {1, 3, 5, 8} ``` ### 查找数组元素 可以使用 `Array.IndexOf()` 方法查找特定元素的索引: ```csharp int index = Array.IndexOf(numbers, 3); // 查找数字 3 的位置 ``` ### 复制数组 可以使用 `Array.Copy()` 方法复制数组的一部分到另一个数组中: ```csharp int[] source = {1, 2, 3, 4, 5}; int[] destination = new int[5]; Array.Copy(source, destination, source.Length); // 复制整个数组 ``` ### 数组长度 可以通过 `Length` 属性获取数组的长度: ```csharp int length = numbers.Length; // 获取数组的长度 ```
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

张_Laura

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值