C#-数组

数组一般用于存储用一类型的数据,即数组是相同类型的对象的集合
数组是一种引用类型,而不是值类型,数组是按数组名、数据元素的类型和维数来描述的,数组分为一维数组和多维数组。多维数组又分为矩形数组和交错数组。
在这里插入图片描述

数组的声明与初始化

可以一开始指定数组元素的个数,也可以一开始不知道,使用数组元素前动态地指定元素个数,一旦元素个数确定后,数组的长度就确定了

int [] a=new int [30];//创建一个包含30个int型元素的数组a,并在定义时指定元素个数为30
string [] b;
int number=int.Parse(Console.ReadLine());//从键盘接收元素个数
b=new String [number];
//指定数组b共有number个元素,也可以在声明语句中直接用简化形式为各元素赋初值
string [] mystring{"first","second","third"};
//但是不带new运算符的简化形式只能在声明语句中,比较下面的写法
string [] mystring;
mystring={"first","second","third"};//错误

数组的秩与数组长度

数组的秩是指数组的维数
数组的长度是数组中所有元素的个数

int [] a=new int [10];  //数组长度是100
int [,] b=new int[3,5];  //数组长度是3*5=15

在这里插入图片描述

一维数组

在一维数组中,数组的下标默认是从0开始索引的,加入数组共有30个元素,则其下标范围是0~29
程序中可以直接在中括号内指定下标来访问每个元素

多维数组

创建:

int [,] n1=new int[3,2]{{1,2},{3,4},{5,6}};
int [,] n2=new int[,]{{1,2},{3,4},{5,6}};
int [,] n3={{1,2},{3,4},{5,6}};

引用:

n1[2][1]

交错数组

交错数组相当于一维数组的每一个元素又是一个数组,也可以把交错数组成为“数组的数组”如果按照行列来排列数组的元素,也可以将交错数组理解为每一行的列数可以相同,也可以不相同
定义:

int [][] n1=new int[2][]
{
	new int [] {2,4,6},
	new int [] {1,3,5,7,9};
};

也可以写为

int [][] n1=new int [][]{new int [] {2,4,6}, new int []{1,3,5,7,9}};

或者写为

int [][] n3={new int [] {2,4,6},new int {1,3,5,7,9}};
string[][] b=new string[3][];
b[0]=new string[2]{"1","2"};
...

交叉数组的每一个元素即可以是一维数组,也可以是多维数组

动态改变数组大小

创建数组后,如果希望动态改变数组的大小,则调用该数组的Resize方法,重新分配一个具有指定大小的数组,然后将元素从旧数组复制到新数组,然后用新数组替换旧数组

public static void Resize<T>(ref T[] array,int newSize)

其中T表示数组类型,array为要调整大小的一维数组,该数组从零开始,如果为null则新建具有指定大小的数组,如果newSize大于旧数组的Length,则分配一个新数组,并将所有元素从旧数组复制到新数组。如果newSize小于旧数组的Length,则分配一个新数组,并将元素从旧数组复制到新数组知道新数组被填满为止,旧数组中的剩余元素被忽略。如果newSize与旧数组的Length相等,则不执行操作

数组元素的排序和查找

提供了Sort和Reverse这样的静态方法
在这里插入图片描述

数组的统计运算及数组和字符串之间的转换

计算数组中所有元素的平均值、求和、求最大数以及求最小数等,这些可以利用数组的Average方法、Sum方法、Max方法和Min方法来实现
对于字符串数组,可以直接利用字符串的Join方法和Split方法实现字符串和字符串组之间的转换
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值