以下内容系本人基于书本及AI工具辅助,结合个人理解所梳理。学力有限,难免有疏漏之处,若各位师友发现谬误,恳请不吝【斧正】,感激不尽。
1.定义:数组是固定大小、同一类型的元素集合
// 方式1:声明并指定大小,稍后赋值 int[] numbers = new int[5]; numbers[0] = 10; // 索引从0开始 // 方式2:声明时直接初始化(最常用) string[] fruits = new string[] { "苹果", "香蕉", "橙子" }; // 方式3:简化写法(编译器自动推断)不建议 char[] grades = { 'A', 'B', 'C' };访问数组通过索引,程序中索引序号从0开始计算
获取数组的长度用.Length属性
2. 遍历数组:两种主流方式
//方法1 通过for循环遍历 //通过索引值进行遍历,可以随时修改内容 string[] names = { "张三", "李四", "王五" }; // for循环(需要索引时用) for (int i = 0; i < names.Length; i++) { Console.WriteLine($"{i}: {names[i]}"); }//方法2 使用foreach进行遍历 //只能获取里面的值,不能更改内容 string[] names = { "张三", "李四", "王五" }; // foreach(只读遍历,代码更简洁) foreach (string name in names) { Console.WriteLine(name); }3.System.Array
C# 中的数据是由System.Array派生类而来的引用对象,因此可以使用Array中的方法对数组进行操作
int[] arr = { 5, 2, 8, 1, 9 }; // 1. 升序排序(原地修改数组) Array.Sort(arr); Console.WriteLine("排序后:" + string.Join(",", arr)); // 1,2,5,8,9 // 2. 反转数组(原地反转) Array.Reverse(arr); Console.WriteLine("反转后:" + string.Join(",", arr)); // 9,8,5,2,1 // 3. 查找元素索引 int index = Array.IndexOf(arr, 8); Console.WriteLine("数字8的索引:" + index); // 输出 1 // 4. 清空指定范围元素(下标0开始,清空2个元素) Array.Clear(arr, 0, 2); Console.WriteLine("清空前2位后:" + string.Join(",", arr)); // 0,0,5,2,14.数组的赋值
数组是引用类型,赋值时传的是引用(地址)
int[] a = { 1, 2, 3 }; int[] b = a; // b 和 a 指向同一块内存 b[0] = 100; Console.WriteLine(a[0]); // 输出 100,a也被改了! //正确的方法 int[] b = new int[a.Length]; Array.Copy(a, b, a.Length); // 或 a.Clone() 浅拷贝