数组这一数据类型在C语言中同样有所涉及,这里主要介绍C#中的数组数据类型。

首先是一维数组,在此给出一维数组声明的五种形式

int[] arr1;//仅声明,不作初始化与内容赋值
int[] arr2 = new int[5];//声明并初始化固定大小空间,不对内容赋值
int[] arr3 = new int[5] {1,2,3,4,5}//声明并初始化固定大小空间且对内容赋值
int[] arr = new int[] {1,2,3......}//声明并赋值内容,初始化出的空间大小由内容的多少决定
int[] arr = {1,2,3,4......}//声明,内容赋值并由内容决定初始化空间大小

需要注意的是,若采用第一种方式声明出的数组在后面需要使用时仍然需要初始化。

对一维数组的各类操作与使用,与C语言是大同小异的,本篇中仅介绍数组中元素的增删。

首先是一维数组中元素的增加,常见的方式是,新初始化一个相较于原数组长度加1的新数组,随后通过循环将原数组中的值赋给新数组中的对应项,最后将原数组的首地址赋给新数组完成数组长度的增加,语法如下:

int[] array = {1,2,3,4,5};//初始化原数组
int[] array2 = new int[6];//初始化新数组
for(int i = 0;i<array.Length;i++)//循环赋值
{
    array2[i] = array[i];    
}
array = array2;//将新数组的首地址赋给原数组
array[5] = 6;//对新初始化的空间进行内容赋值

对于一维数组中元素的删除实际上与元素的增加采用了相同的方式,即新初始化一个比原数组长度少1的新数组,并通过循环遍历赋值,最后进行地址转移,语法如下:

int[] array = {1,2,3,4,5};
int[] array3 = new int[4];
for(int i = 0;i<array3.Length;i++)
{
    array3[i] = array[i];
}
array = array3;

 

不难发现,该删除元素的操作是针对原数组中末尾项元素进行删除,而当我们需要删除的元素在数组中其他位置时,则需要在遍历时增加一个条件判断,即当循环遍历至我们需删除的那个元素时,不对其进行赋值,而跳过该元素,反过来说,我们的判断条件即为,当遍历的数组元素的索引不是我们需要删除的对应元素的索引时,我们才执行赋值操作,即:

int[] array = {1,2,3,4,5};
int[] array4 = new int[4];
int delIndex = 3;
for(int i = 0;i<array4.Length;i++)
{
    if(i != delIndex)
    {
    array4[i] = array[i];
    }
}
array = array4;

 

 

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐