功能
将两个数组进行合并,形成一个大的数组
以下三个方法
代码
/// <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 : 原数组的数量,从起始位置开始