前言
数组存储多个相同类型的一种非常常用的数据结构。它长度是固定,也就是数组一旦创建大小就固定了。c# 数组不支持动态长度。那在c#中是否有方法可以调整数组大小呢?本文将通过示例介绍一种调整一维数组大小的方法。
方法
数组实例是从 system.array 类继承类型的对象。我们可以使用 array.resize<t> 方法调整数组大小。此方法只允许我们将一维数组中的元素数量更改为指定的大小。
1、方法定义:
resize 方法定义如下:
public static void resize<t>(ref t[] array, int newsize);
t: 数组中元素的类型。
数组: 需调整大小的一维数组、基于零的数组,或为空以创建具有指定大小的新数组。
newsize: 调整后数组大小。
示例
我们通过一些例子,了解调整大小如何影响数组。
1、调大数组:
using system; namespace fountain.winconsole.otherdemo { internal class program { static void main(string[] args) { // 定义数组 string[] carriers = { "zto", "sf", "yto", "jt", "ems", "yunda"}; // 输出 数组大小:6 console.writeline("数组大小:{0}",carriers.length); // 将数组调整为更大的大小 array.resize(ref carriers, carriers.length+5); // 输出 调整后数组大小:11 console.writeline("调整后数组大小:{0}", carriers.length); // 任意键退出 console.read(); } } }
2、调小数组:
using system; namespace fountain.winconsole.otherdemo { internal class program { static void main(string[] args) { // 定义数组 string[] carriers = { "zto", "sf", "yto", "jt", "ems", "yunda"}; // 输出 数组大小:6 console.writeline("数组大小:{0}",carriers.length); // 将数组调整为更大的大小 array.resize(ref carriers, 4); // 输出 调整后数组大小:4 console.writeline("调整后数组大小:{0}", carriers.length); // 输出 zto sf yto jt for (int i = 0; i < carriers.length; i++) { // 输出调正后的数组元素 console.write("{0} ", carriers[i]); } // 任意键退出 console.read(); } } }
事项
1、array.resize 方法分配指定大小的新数组,并将元素从原数组复制到新数组,然后再将原数组替换为新数组。
2、如果数组为空,则创建一个指定大小的新数组。
3、如果 newsize 大于原数组的长度,则分配一个新数组,并将原数组的所有元素复制到新数组。
4、如果 newsize 小于原数组的长度,则分配一个新数组,并将原数组元素填充到新数组,直到新数组被填充完,原数组中的其余元素会被忽略。
小结
到此这篇关于调整c#中数组大小的方法的文章就介绍到这了,更多相关c#数组大小调整内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论