数组操作-将两个数组合并成一个新的数组

115 115
C#
sam
sam 2024-09-20 10:38:48

功能

将两个数组进行合并,形成一个大的数组

以下三个方法

代码

       /// <summary>
       /// 将两个数组合并成一个新的数组
       /// </summary>
       /// <param name="old"></param>
       /// <param name="arrNew"></param>
       /// <returns></returns>
       private int[] ArrayAdd1(int[] old, int[] arrNew)
       {
           var lst = old.ToList();
           lst.AddRange(arrNew);

           return lst.ToArray();
       }

       /// <summary>
       /// 通过 IEnumerable 来实现数组合并
       /// </summary>
       /// <param name="old"></param>
       /// <param name="arrNew"></param>
       /// <returns></returns>
       private int[] ArrayAdd2(int[] old, int[] arrNew)
       {
          return old.Concat(arrNew).ToArray();
       }


       /// <summary>
       /// 通过 Array 方法来实现
       /// </summary>
       /// <param name="old"></param>
       /// <param name="arrNew"></param>
       /// <returns></returns>
       private int[] ArrayAdd3(int[] old, int[] arrNew)
       {
           var newLength = old.Length + arrNew.Length;

           int[] newArr = new int[newLength];

           //将原有的数组通过长度 拷贝到 新数组中
           Array.Copy(old,newArr,old.Length);

           //将另外一个数组也拷贝到新数组中
           Array.Copy(arrNew,0,newArr,old.Length, arrNew.Length);

           return newArr;
       }

说明

1、Array中的Copy的方法

复制源数组中的前N个数据到目标数组中

public static void Copy(
    Array sourceArray,
    Array destinationArray,
    int length
)

复制源数组中指定起始位置,指定长度的数据到目标数组中的某个指定起始位置中。

public static void Copy(
    Array sourceArray,
    int sourceIndex,
    Array destinationArray,
    int destinationIndex,
    int length
)

sourceArray:原数组

sourceIndex : 原数组超始位置

destinationArray:目标数组

destinationIndex,:目标数组的起始位置

int length : 原数组的数量,从起始位置开始

回帖
  • 消灭零回复