14. C#入门系列【数组】:代码世界的 “超级收纳盒”

C#入门系列【数组】:代码世界的 “超级收纳盒”

想象一下,你有 100 颗糖果,随手丢在桌上,找特定口味的糖果得翻个底朝天。但要是有个超大号分格收纳盒,把草莓味、巧克力味、柠檬味的糖果都分类装好,找起来是不是超方便?在 C# 的代码世界里,数组就是这个 “超级收纳盒”,它能帮我们把一堆数据有条理地管起来。今天,咱们就来扒一扒数组的 “前世今生”!

一、数组初登场:从 “散装数据” 到 “精装套餐”

先看个 “散装数据” 的例子。假设你要记录 5 个同学的考试成绩,如果不用数组,可能会这么写:

int score1 = 85;
int score2 = 90;
int score3 = 78;
int score4 = 95;
int score5 = 88;

要是有 100 个同学的成绩,难道要写 100 行代码?这不得累到 “吐血”!而且,想统计这些成绩的总和,代码会变得又长又乱。
这时候,数组闪亮登场!用数组来存储这 5 个成绩,瞬间清爽:

int[] scores = { 85, 90, 78, 95, 88 };

int[]表示这是一个存储整数的数组,scores是数组的名字,大括号里就是具体的成绩数据。就像给这 5 个成绩套上了一个 “收纳盒”,想找哪个成绩、想对它们做什么操作,都方便多了!

二、数组的基本语法:打造专属 “收纳盒”

创建数组有两种常见方式,就像组装收纳盒有不同的 “说明书”:

1. 初始化赋值法

// 存储字符串的数组,记录一周的星期名称
string[] weekdays = { "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday" };

// 存储布尔值的数组,记录是否完成作业(true表示完成,false表示未完成)
bool[] isHomeworkDone = { true, false, true, true, false };

这种方式适合一开始就知道数组里具体数据的情况,直接把数据塞进去,“收纳盒” 就组装好了。

2. 指定长度法

// 创建一个能容纳10个整数的数组,初始值都是0
int[] numbers = new int[10];


// 创建一个能容纳5个字符串的数组,初始值都是null
string[] names = new string[5];

这里new关键字就像 “开工指令”,告诉 C# 要打造一个指定大小的 “收纳盒”。虽然一开始里面的数据是默认值(数值类型默认是 0,引用类型默认是null),但后续可以随时往里面 “放东西”。

三、数组的 “打开方式”:精准定位 “收纳物品”

数组里的每个数据都有一个专属 “座位号”,这个 “座位号” 叫索引。在 C# 中,索引从 0 开始计数。比如前面的scores数组:

int[] scores = { 85, 90, 78, 95, 88 };

// 取出第一个同学的成绩(索引为0)
int firstScore = scores[0];
Console.WriteLine($"第一个同学的成绩是:{firstScore}");

// 修改第三个同学的成绩(索引为2)
scores[2] = 80;
Console.WriteLine($"修改后的成绩数组:{string.Join(", ", scores)}");

通过数组名[索引]的方式,就能精准 “抓取” 或修改数组里的数据,就像拿着 “座位表” 在电影院找座位一样简单。

四、数组的 “花式操作”:解锁更多收纳技巧

1. 遍历数组:挨个 “检查收纳盒”

如果想把数组里的数据全部打印出来,或者做一些批量处理,就需要遍历数组。最常用的两种方式是for循环和foreach循环:

int[] numbers = { 1, 2, 3, 4, 5 };


// 使用for循环遍历
Console.WriteLine("使用for循环遍历数组:");
for (int i = 0; i < numbers.Length; i++)
{
   Console.Write(numbers[i] + " ");
}

Console.WriteLine();


// 使用foreach循环遍历
Console.WriteLine("使用foreach循环遍历数组:");


foreach (int num in numbers)
{
   Console.Write(num + " ");
}

for循环像个 “勤劳的小蜜蜂”,按照索引顺序挨个访问数组元素;foreach循环则更 “人性化”,直接把数组里的每个元素 “拎出来” 处理,不用操心索引的问题。

2. 多维数组:打造 “多层收纳柜”

前面说的都是一维数组,就像单层的收纳盒。如果数据需要按 “行” 和 “列” 排列,就可以用多维数组,比如二维数组:

// 创建一个3行4列的二维数组,存储学生的各科成绩
int[,] studentScores = {
   { 85, 90, 78, 82 },
   { 92, 88, 95, 87 },
   { 76, 80, 84, 91 }
};


// 取出第二行第三列的成绩(注意索引从0开始,所以是[1, 2])
int specificScore = studentScores[1, 2];
Console.WriteLine($"第二行第三列的成绩是:{specificScore}");

二维数组就像一个 “多层抽屉收纳柜”,每个数据都有 “楼层号” 和 “抽屉号”(两个索引),定位起来也很方便。当然,C# 还支持三维甚至更多维的数组,不过用得相对少一些。

3. 数组的常用方法:收纳盒的 “隐藏功能”

C# 提供了很多实用的数组方法,比如:

  • Array.Sort():给数组里的数据 “排队”,就像把收纳盒里的物品按大小、字母顺序整理好。
int[] numbers = { 5, 3, 1, 4, 2 };
Array.Sort(numbers);
Console.WriteLine($"排序后的数组:{string.Join(", ", numbers)}");
  • Array.Reverse():把数组里的数据顺序 “倒过来”,像把收纳盒里的物品从尾到头重新排列。
int[] numbers = { 1, 2, 3, 4, 5 };
Array.Reverse(numbers);
Console.WriteLine($"反转后的数组:{string.Join(", ", numbers)}");

五、使用数组的 “避坑指南”:别让收纳变 “灾难现场”

    1. 索引越界警告:千万别忘了数组索引从 0 开始!如果访问scores[5](假设scores数组只有 5 个元素),程序会直接 “罢工”,抛出IndexOutOfRangeException异常,就像你非要打开不存在的抽屉,肯定会出问题。
    1. 类型必须一致:数组这个 “收纳盒” 很 “挑剔”,只能装同一类型的数据。别想着把整数和字符串强行塞到同一个数组里,否则编译都过不了,就像硬把袜子和勺子放在同一个抽屉,怎么看都不对劲!
    1. 多维数组的 “尺寸” 陷阱:使用多维数组时,一定要注意行和列的数量。比如在遍历二维数组时,循环条件写错,就可能访问到不存在的位置,引发奇怪的错误。

六、总结:数组在手,数据管理无忧!

数组就像 C# 代码世界里的 “万能收纳神器”,有了它,不管是几百个数据还是复杂的多维数据,都能被安排得明明白白。下次遇到需要管理一堆同类数据的场景,记得果断掏出数组这个 “法宝”!快去用数组优化你的代码,让它们变得更整洁、更高效吧!如果在使用数组的过程中遇到了有趣的问题,或者发现了更酷的用法,欢迎随时来和我分享哦!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

阿蒙Armon

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

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

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

打赏作者

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

抵扣说明:

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

余额充值