我有一个带有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;
}

10-02 01:25