如何以通用方式连接数组?
How to join arrays in a generic fashion way?
我想独立于数组的类型加入数组。
T[] arr1 = new T[];
T[] arr2 new T[];
T[] newArr = Helper.GetJoint(arr1, arr2);
您可以为此使用 LINQ
T[] newArr = arr1.Concat(arr2).ToArray();
对于较大的数组,想要优化分配的地方,可以使用下面的扩展方法
public static T[] Append<T>(this ICollection<T> arr1, ICollection<T> arr2) {
var newArr = new T[arr1.Count + arr2.Count];
arr1.CopyTo(newArr, 0);
arr2.CopyTo(newArr, arr1.Count);
return newArr;
}
这个可以在下面调用
var newArr = arr1.Append(arr2);
我想独立于数组的类型加入数组。
T[] arr1 = new T[];
T[] arr2 new T[];
T[] newArr = Helper.GetJoint(arr1, arr2);
您可以为此使用 LINQ
T[] newArr = arr1.Concat(arr2).ToArray();
对于较大的数组,想要优化分配的地方,可以使用下面的扩展方法
public static T[] Append<T>(this ICollection<T> arr1, ICollection<T> arr2) {
var newArr = new T[arr1.Count + arr2.Count];
arr1.CopyTo(newArr, 0);
arr2.CopyTo(newArr, arr1.Count);
return newArr;
}
这个可以在下面调用
var newArr = arr1.Append(arr2);