通常,我们创建一个数组后就不能调整其长度,但是Array类提供了一个静态方法CreateInstance用来创建一个动态数组,所以我们可以通过它来动态调整数组的长度。
namespace ArrayManipulation { Class Program { static void Main (String[] args) { int[] arr = new int[]{1,2,3}; PrintArr(arr); arr = (int[])Redim(arr,5); PrintArr (arr); arr = (int[]) Redim (arr, 2); PrintArr (arr); ) public static Array Redim (Array origArray, int desiredSize) { //determine the type of element Type t = origArray.GetType().GetElementType(); //create a number of elements with a new array of expectations //new array type must match the type of the original array Array newArray = Array.CreateInstance (t, desiredSize); //copy the original elements of the array to the new array Array.Copy (origArray, 0, newArray, 0, Math.Min (origArray.Length, desiredSize)); //return new array return newArray; } //print array public static void PrintArr (int[] arr) { foreach (int x in arr) { Console.Write (x + ","); } Console.WriteLine (); } } }