程序开发 > C# > 正文

C#定义数组与array resize新增加元素

亮术网 2020-08-11 本网原创

array数组定义后不能像 arraylist 一样任意扩展新增元素,得使用 array resize 方法重新定义数组长度,然后再定义新增的元素类型,接着添加元素;定义新的数组后,原来的数组被丢弃;在内存分配方面,会新分配一段内存给新的数组使用,而不是在原分配内存的基础上扩展,即要多消耗内存资源。

了解数组 array resize 方法后,接着看一个用它扩展新增元素的实例,先从C#定义数组和添加元素开始。

 

一、C#定义数组并用对象初始化

string[] array = new string[3];
  array[0] = "123";
  array[1] = "abc";
  array[2] = "cde";

 

二、C#定义数组并初始化

int[] arrNum = new int[3]{ 1, 2, 3 };
  string[] arrStr = new string[3]{ "a", "b", "c" };

int[] arrNum1 = { 1, 2, 3 };
  string[] arrStr1 = {"a", "b", "c"};

 

三、用 array resize 重定义数组新增元素

Array.Resize<string>(ref array, (array.Length + 3));
  array[3] = "fgh";
  array[4] = "jkl";
  array[5] = "mn";

for (int n = 0; n < array.Length; n++)
    Response.Write("<br />" + array[n]);

输出结果:

abc
  cde
  fgh
  jkl
  mn

Resize 方法有两个参数,一个是原数组,另一个是新数组的长度,即原数组长度加要新增加的元素个数,如例中的 array.Length + 3。

至于原数组所占内存资源的释放问题,可以不管它,GC 会自动回收;如果要求立即释放,可以让 GC 强制回收,不过最好不这样处理,程序可能会引发异常。

 

以上举的是一个简单的例子,在实际运用中,可以用来定义数据库表的字段类型。例如,插入记录与更新记录操作的字段通常不一样,此时就可以用 array resize 方法来扩展数组元素。