更优化更改数组长度

通常我们更改数组长度时,通过创建一个 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);
posted @ 2008-05-27 21:43  wanggh  阅读(235)  评论(0编辑  收藏  举报