C# 数组增加元素_【c#资料】数组(Array)

C# 数组(Array)

文章目录:

  1. C# 数组
  2. 一维数组
  3. 多维数组
  4. 交错数组
  5. Array类
  6. 参数数组

1.简介

数组是一个存储相同类型元素且固定大小的顺序集合。数组是用来存储数据的集合,通常认为数组是一个同一类型变量的集合。

所有的数组都是由连续的内存位置组成,最低的下标对应第一个元素,最高的下标对应最后一个元素。


2.数组的声明

在 C# 中声明一个数组,可以使用下面的语法:

datatype
  • datatype 指定被存储在数组中的元素的类型
  • [ ] 指定数组的秩(维度),秩是指数组的维数,如一维数组的秩为1,二维数组的秩为2
  • arrayName 指定数组的名称

3.特性介绍

1)数组是引用类型而不是值类型

2)数组的容量为固定值,无法修改,如果要增减容量,必须创建新数组,将旧数组的元素复制到新数组中,并删除旧数组。

3)数组不会自动排序,默认按照初始化时排列顺序排序。

C# 数组增加元素_【c#资料】数组(Array)_第1张图片

4)多维数组可以为每个维度提供不同的界限,最多可以有 32 个维度

C# 数组增加元素_【c#资料】数组(Array)_第2张图片

5)数组中的元素不可为 null,否则编译时会报错

6)数组的长度为元素的总数,长度为 Length-1,超出长度编译时会报错。


一 . 一维数组

datatype

一维数组的元素个数称为一维数组的长度。

一维数组长度为 0 时,我们称之为空数组。一维数组的索引从零开始,具有n个元素的一维数组的索引是从 0 到 n-1 。

当创建一个数组时,编译器会根据数组类型隐式初始化每个数组元素为一个默认值。例如,int 数组的所有元素都会被初始化为 0。


1.一维数组的声明和创建形式:

数组类型 [ ] 数组名 = new 数组类型 [数组长度]

//表示声明和创建一个具有5个数组元素的一维数组a

2.一维数组的初始化:

1)在创建时初始化

int 

2)先声明后初始化

int 

3)先创建后初始化

int 

3.遍历数组

int

运行结果:

C# 数组增加元素_【c#资料】数组(Array)_第3张图片

二 . 多维数组

datatype

多维数组需要使用多个元素索引才能确定数组元素的位置

声明多维数组时,必须明确定义维度数、各维度的长度、数组元素的数据类型

多维数组的元素总数是各维度的长度的乘积

例如:如果二维数组a的两个维度的长度分别为2和3,则该数组的元素总数为6。

1.多维数组的声明和创建形式:

数组类型 [ 维度 ] 数组名 = new 数组类型 [ 维度长度 ];

//表示声明和创建一个具有 5×4×3 共60个数组元素的三维数组a 

2,多维数组的初始化需要注意以下几点:

1)以维度为单位组织初始化值,同一维度的初始值放在一对花括号之中

int 

2)可以省略维度长度列表,系统能够自动计算维度和维度的长度。但注意,逗号不能省略

int

3)初始化多维数组可以使用简写格式

int 

4)不允许部分初始化

//只初始化二维数组的第一列元素,这是不允许的 

5)可以先创建再初始化,但不建议这样使用,因为会非常麻烦

注意:声明时 不需要 指定内存,创建时 需要 指定内存

//先创建后初始化需要通过下标一个一个赋值

6)可以先声明,再初始化

int

3.遍历数组

int

运行结果:

C# 数组增加元素_【c#资料】数组(Array)_第4张图片

三 . 交错数组

datatype

交错数组是一种由若干个数组构成的数组。为了便于理解,我们把包含在数组中的数组称为子数组。


1.交错数组的声明和创建形式:

数组类型 [ 维度 ] [ 子数组维度 ] 数组名 = new 数组类型 [ 维度长度 ] [ 子数组维度 ] ;

//表示创建了由2个一维子数组构成一维数组a 

2.交错数组的初始化:

交错数组同样有多种初始化方式,包括创建时初始化、先声明后初始化等。

注意:初始化交错数组时,每个元素的 new 运算符都不能省略

1)创建时初始化可省略维度长度

//表示创建由2个一维子数组构成的数组a 

2)先声明后初始化更加直观

//声明由3个一维子数组构成的数组a 

3.遍历数组

int

运行结果:

C# 数组增加元素_【c#资料】数组(Array)_第5张图片

四.Array类

1.简介

Array 类是 C# 中所有数组的基类,它是在 System 命名空间中定义。Array 类提供了各种用于数组的属性和方法。

Array 类是抽象类,无法 new ,只能继承


Array 类的方法和属性

1) Array 类的一些常用的 属性

属性 描述
IsFixedSize 大小是否固定
IsReadOnly 是否只读
Length 获取数组中的元素总数(值为32位整数)
LongLength 获取数组中的元素总数(值为64位整数)
Rank 获取数组的秩(维度)

2) Array 类的一些常用的 方法

方法 描述
object GetValue (int index); 获取一维 Array 中指定位置的值
object? GetValue (int[] indices); 获取多维 Array 中指定位置的值,int[] indices 为一维数组,表示指定位置的索引
int GetLowerBound (int dimension); 获取 Array 指定维度第一个元素的索引
int GetUpperBound (int dimension); 获取 Array 指定维度最后一个元素的索引
int GetLength(int dimension); 获取指定维度中的所有元素总数(值为32位整数)
long GetLongLength(int dimension); 获取指定维度中的所有元素总数(值为64位整数)
bool Equals(object object); 确定指定对象是否等于当前对象
void SetValue (object value, int index); 设置一维 Array 中指定位置元素的值
void SetValue (object? value, params int[] indices); 设置多维 Array 中指定位置元素的值,int[] indices 是一维数组,它表示指定位置的索引
void CopyTo(Array array, int index); 将当前一维数组的所有元素复制到指定的一维数组的指定索引处

3) Array 类的一些常用的 静态方法

静态方法 描述
void Sort (Array array); 对一维 Array 进行排序
void Sort (Array keys, Array items); 基于第一个 Array 的值,对两个一维 Array 进行排序
void Sort (Array array, int index, int length); 对一维 Array 中指定范围元素进行排序
void Reverse (Array array); 反转一维 Array 中所有元素的顺序
void Reverse (Array array, int index, int length); 反转一维 Array 中指定范围元素的顺序
int IndexOf (Array array, object? value); 搜索一维 Array 指定对象,返回首个索引
int IndexOf (Array array, object? value, int startIndex, int count); 从指定索引范围搜索一维 Array 指定对象,返回首个索引
int LastIndexOf (Array array, object? value); 搜索一维 Array 指定对象,返回最后索引
int LastIndexOf (Array array, object? value, int startIndex, int count); 从指定索引范围搜索一维 Array 指定对象,返回最后索引
void Copy(Array array, int index, Array array, int index, int length); 复制指定范围的元素到另一个 Array 指定索引处
void Resize (ref T[]? array, int newSize); 将一维 Array 元素总数更改为指定的新大小
void Clear(Array array, int index , int length); 将 Array 某个范围的元素设置为每个元素类型的默认值

代码演示

注意:为了方便阅读,以下将代码拆分为多段进行演示,实际运行可以把代码直接拼接起来

using 

非静态方法:

Console

运行结果:

C# 数组增加元素_【c#资料】数组(Array)_第6张图片
Console

运行结果:

C# 数组增加元素_【c#资料】数组(Array)_第7张图片
Console

运行结果:

C# 数组增加元素_【c#资料】数组(Array)_第8张图片

静态方法:

Console

运行结果:

C# 数组增加元素_【c#资料】数组(Array)_第9张图片
Console

运行结果:

C# 数组增加元素_【c#资料】数组(Array)_第10张图片
Console

运行结果:

C# 数组增加元素_【c#资料】数组(Array)_第11张图片
Console

运行结果:

C# 数组增加元素_【c#资料】数组(Array)_第12张图片

五.参数数组

当声明一个方法时,不能确定参数的数目,可以使用参数数组,参数数组通常用于传递未知数量的参数给方法。

params 关键字

在使用数组作为形参时,C# 提供了 params 关键字,使调用数组为形参的方法时,既可以传递数组实参,也可以只传递一组数组。params 的使用格式为:

public 

代码演示

using 

运行结果:

C# 数组增加元素_【c#资料】数组(Array)_第13张图片

你可能感兴趣的:(C#,数组增加元素,jupyter,notebook多维数组运算,pycharm定义空的二维数组)