|
@@ -2728,6 +2728,39 @@ namespace InABox.Core
|
|
|
return to;
|
|
|
}
|
|
|
|
|
|
+ /// <summary>
|
|
|
+ /// Concatenate <paramref name="arr1"/> with <paramref name="arr2"/>, returning a new array.
|
|
|
+ /// </summary>
|
|
|
+ /// <typeparam name="T"></typeparam>
|
|
|
+ /// <param name="arr1"></param>
|
|
|
+ /// <param name="arr2"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ public static T[] Concatenate<T>(this T[] arr1, T[] arr2)
|
|
|
+ {
|
|
|
+ var newArr = new T[arr1.Length + arr2.Length];
|
|
|
+ arr1.CopyTo(newArr, 0);
|
|
|
+ arr2.CopyTo(newArr, arr1.Length);
|
|
|
+ return newArr;
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// Concatenate all <paramref name="arrays"/> together.
|
|
|
+ /// </summary>
|
|
|
+ /// <typeparam name="T"></typeparam>
|
|
|
+ /// <param name="arrays"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ public static T[] Concatenate<T>(params T[][] arrays)
|
|
|
+ {
|
|
|
+ var newArr = new T[arrays.Sum(x => x.Length)];
|
|
|
+ for(int i = 0, idx = 0; i < arrays.Length; ++i)
|
|
|
+ {
|
|
|
+ var arr = arrays[i];
|
|
|
+ arr.CopyTo(newArr, idx);
|
|
|
+ idx += arr.Length;
|
|
|
+ }
|
|
|
+ return newArr;
|
|
|
+ }
|
|
|
+
|
|
|
public static IEnumerable<T> AnyOr<T>(this IEnumerable<T> enumerable, IEnumerable<T> or)
|
|
|
{
|
|
|
var any = false;
|