C#中动态调整数组大小的代码

清华大佬耗费三个月吐血整理的几百G的资源,免费分享!....>>>

通常,我们创建一个数组后就不能调整其长度,但是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 ();
        }
    }
}