C#定义数组与array resize新增加元素
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 方法来扩展数组元素。
-
相关阅读
- 索引超出了数组界限(数组越界)原因、示例及解决
- Excel SumIf函数条件带?/*、Average和数组多条
- javascript 多维数组定义、添加、删除和排序元素(js
- C#合并二进制数组(byte数组)
- Excel SumIfs函数基本与用日期和数组组合同一列多条
- js数组操作大全(带实例),含隐性定义、三种添加和删
- Excel Choose函数的使用方法,包含把数组和定义名称
- Excel用Aggregate函数忽略错误值空值求和求平均值
- Excel SumProduct函数数组与多条件表达的使用方法
- Excel Text函数用法的18个实例,含文本日期、条件范
- js删除数组所有元素(第一个、最后一个、按条件或值删