static class Extensions
{
public static T[] Concat<T>(this T[] array1, params T[] array2) => ConcatArray(array1, array2);
public static T[] ConcatArray<T>(params T[][] arrays)
{
int l, i;
for (l = i = 0; i < arrays.Length; l += arrays[i].Length, i++);
var a = new T[l];
for (l = i = 0; i < arrays.Length; l += arrays[i].Length, i++)
arrays[i].CopyTo(a, l);
return a;
}
}
Ich denke, die obige Lösung ist allgemeiner und leichter als die anderen, die ich hier gesehen habe. Sie ist allgemeiner, weil sie die Verkettung nicht auf nur zwei Arrays beschränkt und leichter ist, weil sie weder LINQ noch List verwendet.
Beachten Sie, dass die Lösung prägnant ist und die zusätzliche Allgemeinheit keinen signifikanten Laufzeit-Overhead mit sich bringt.