private T[] ObjArrayExtend<T>(T[] arr, int length,T instance)
    {
        T[] temp = null;
        if (arr == null)
        {   
            temp = new T[length];
            temp[length - 1] = instance;
        }
        else
        {
            if (length < arr.Length)
            {
                temp = new T[length + 1];
                Array.Copy(arr, temp, length);
            }
            else
            {
                temp = new T[length + 1];
                Array.Copy(arr, temp, arr.Length);
            }
        }        return temp;
    }

解决方案 »

  1.   

    泛型方法
    Array.Copy 方法
    从第一个元素开始复制 Array 中的一系列元素,将它们粘贴到另一 Array 中(从第一个元素开始)。 
      

  2.   


    private T[] ObjArrayExtend<T>(T[] arr, int length,T instance)
    {
    T[] temp = null;//声明泛型数组引用temp
    if (arr == null)//判断形参arr
    {   
    //形参arr为null则执行
    temp = new T[length];//创建length长度的T数组,将temp赋值为数组的引用
    temp[length - 1] = instance;//最后一个元素赋值为形参instance
    }
    else
    {
    //形参arr不为null则执行
    if (length < arr.Length)//length比arr长度小
    {
    temp = new T[length + 1];//创建一个length+1长度的数组
    Array.Copy(arr, temp, length);//将arr复制到这个数组中
    }
    else//arr长度大于length
    {
    temp = new T[length + 1];//创建一个length+1长度的数组
    Array.Copy(arr, temp, arr.Length);//将arr复制到这个数组中
    }
    } return temp;
    }
    //从逻辑上看不出是干什么的,具体情况看看把。一般阅读别人代码要结合调用的地方看。