(十七)C#编程基础复习——数组
特此声明:本教程内容可能有部分参照其他博主的观点或描述,但始终不影响我学习的热情,代码全部自己手工敲打,编辑此教程目的不是为了博取大家眼球,也不是为利益所驱,只是纯属为了方便自己学习,编辑的过程中也让自己加深了对C#各个基础的印象,同时也让自己编码过程更加流畅顺利,最后还能帮助到有需要的人,代码都是自己亲测有效,如有侵权可以联系本人删除。
和其他编程语言一样C#也支持数组,数组是一个用来存储相同类型数据的、固定大小的、具有连续内存位置的顺序集合。数组中的每个元素都对应一个索引值,索引从0开始依次递增,我们可以通过索引来访问数据中的指定元素。
假如我们要存储100名学生的分数,若使用普通变量的话可能需要定义100整型变量,例如number0、number1、...、number99。而如果使用数组就简单的多了,只需要定义一个长度为100的整数数组,例如numbers,然后使用numbers[0]、numbers[1]、...、number[99]([]中的数字就是数组的索引)就可以访问数据中的每个元素。
所有数组都是有连续的内存位置组成,最低的内存地址对应第一个元素,最高的内存地址对应最后一个元素,如下图所示:
一、声明数组
在C#中声明一个数组的语法如下:data_type [] array_name;其中,data_type用来指定数据中元素的类型;[]用来指定数据的维度;array_name为数组的名称。
二、初始化数组
声明完数组后,下一步是初始化数组,数组只有经过初始化后才可以为其中的每个元素赋值。因为数组是引用类型,所以需要使用new关键字来对数组进行初始化。
例如:
另外,数组的声明和初始化还可以放在一起进行,例如:
三、为数组元素赋值
1.我们可以使用数组的索引来为数组中的各个元素赋值,如下:
int [] arr =new int [10];
arr[0]=10;
arr[1]=11;
arr[.]=..;
2.单独为数组中的各个元素赋值太过麻烦了,我们也可以在声明数组时直接为数组赋值,只需要将数组中的每个元素依次放入到一个{}中,并将每个元素使用,分隔开即可,如下:
int [] arr={1,2,3,4,5,6,7,8,9,10};
double [] arr1={23.2,34.4,35.3}
3.使用上面的方法并不用提前设定数组的长度,那如果想要指定数组的长度该怎么办?只需要像下面这样即可:
double [] arr1=new double[4]{93.4,98.0,99.3,93.9};
int [] arr2=new int [10]{0,1,2,3,4,5,6,7,8,9};
4.当然像下面这样省略数组的长度也是可以的。
double [] arr1=new double [] {92.1,23.4,32.3,43.2};
int [] arr2=new int [] {0,1,2,3,4,5,6,7,8,9};
5.数组也可以像变量一样,使用一个定义好的数组为另一个相同类型的数组赋值,这种情况下,两个数组将指向相同的内存地址,如下:
int [] arr1=new int [] {0,1,2,3,4,5,6,7,8,9};
int [] arr2=arr1;
提示:当我们创建一个数组时,C#的编译器会根据数组类型隐式的为数组中的每个元素初始化一个默认值。例如int类型的数组中所有的元素都会被初始化为0。
四、访问数组中的元素
我们可以通过数组的索引(也可称为下标)来访问数组中的指定元素,只需要在数组名的后面加上一个方括号[],并在其中填写对应的数组索引即可,如下:
int [] arr=new int [] {0,1,2,3,4,5,6,7,8,9};
int a=arr[0];
示例代码如下访问数组中的每个元素:
int[] arr = new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
for(int i=0;i<10;i++)
{
Console.WriteLine("arr[{0}]={1} ", i, arr[i]);
}
Console.ReadLine();
Console.ReadKey();
运行结果:
五、使用foreach遍历数组
除了上面通过for循环来访问数组中的每个元素,另外还可以使用foreach循环来遍历数组中的元素,示例代码如下:
int[] arr1 = new int[] { 100, 101, 102, 103, 104, 105, 106, 107, 108, 109 };
int index = 0;
foreach(int i in arr1)
{
Console.WriteLine("arr[{0}]={1}",index,i);
index++;
}
Console.ReadLine();
Console.ReadKey();
运行结果:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了