先来看原始数组:
结果的输出自然是 2 + 5;
动态分配:
1:m++;
array = newint[m];//相当于重新初始化,原来的值被冲掉了
结果输出自然是 0 + 6;
2:m++;
Array.Resize(ref array,m);
label2.Text =array[0].ToString() + " + " + array.Length.ToString();
结果输出自然是 2 + 6;
3:再有就是通过ArrayList的方法
第1种方案适合能够事先能从某处读出来长度的情况;第2,3种方案最适合在事先不知道数据长度究竟有多少,只能来一个算一个的情况,个人感觉,这才是动态数组真正的用途,也就是能够随着数据的增加而自动扩容。
在这方面ArrayList毫无疑问是首选,能够真正实现这个功能.
ArrayList al = new ArrayList();
al.Add(NewData);//单个添加
al.Add(NewData);//单个添加
如果增加的是同一类型的数据,用Array.Resize()也是能够实现的:
if(产生了新数据)//增加个判断
{
}
虽然有同样的效果,但本质上是有差异的.ArrayList是真正的在变长.而System.Array.Resize这个泛型方法是
重新创建新设置大小的数组,用的是旧数组的元素初始化。随后以前的数组就废弃!也就是说并不是在原先的基础上扩容,而是新建了一个.但是无论如何在表面上看来确实实现了我们想要的功能.
本文介绍了C#中实现动态数组的多种方式,包括通过改变数组长度、使用Array.Resize方法及ArrayList类来动态调整数组大小,适用于不同场景的需求。

6464

被折叠的 条评论
为什么被折叠?



