通常我们更改数组长度时,通过创建一个 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);

相关文章:

  • 2021-11-29
  • 2021-12-21
  • 2021-05-18
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-04-03
  • 2022-12-23
  • 2022-12-23
  • 2021-10-19
  • 2021-12-09
  • 2021-12-22
相关资源
相似解决方案