Dynamically adjust the size of an array in c#

Generally, after we create an array we cannot make any adjustment of its length, but the array class provides a static method named CreateInstance to create a dynamic array, of course, we can use this to dynamically adjust its features like the array length.

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 ();
        }
    }
}

Enjoyed this post? Share it!

 

Leave a comment

Your email address will not be published.