更优化更改数组长度

通常我们更改数组长度时,通过创建一个 IList 对象做为中转,然后,移动到一个新数组。这种方式并不是很高效。
最近在 .NET Framework SDK 文档中发现使用 public static Array CreateInstance(Type, int); 方法更高效。
代码如下:
public   static  Array Change(Array oldArray,  int  size)
{
    Type type 
=  oldArray.GetType().GetElementType();
    Array newArray 
=  Array.CreateInstance(type, size);
    
int  minLen  =  Math.Min(oldArray.Length, size);
    
if  (minLen  >   0 )
    {
        Array.Copy(oldArray, newArray, minLen);
    }
    
return  newArray;
}

测试代码:
String[] strs  =   new  String[ 3 ];
strs[
0 =   " 0 " ;
strs[
1 =   " 1 " ;
strs[
2 =   " 2 " ;
String[] newStrs 
=  (String[])ResizeArray.Change(strs,  6 );

你可能感兴趣的:(数组)