我有一个带有Length = 3
和值的数组,例如{1,2,3}。
我需要动态调整大小。
我知道我可以使用列表或
Array.Resize()。但是我需要知道如何实现自己的调整大小方法吗?
最佳答案
您可以尝试以下代码。创建具有新大小的新阵列,并将旧阵列数据复制到新创建的阵列。
public static Array ResizeArray (Array oldArray, int newSize)
int oldSize = oldArray.Length;
Type elementType = oldArray.GetType().GetElementType();
Array newArray = Array.CreateInstance(elementType,newSize);
int preserveLength = System.Math.Min(oldSize,newSize);
if (preserveLength > 0){
Array.Copy (oldArray,newArray,preserveLength);
}
retuen newArray;
}