Просто чтобы это было отмечено как опция: если массивы, с которыми вы работаете, относятся к примитивному типу & ndash; Boolean (bool), Char, SByte, Byte, Int16 (короткий), UInt16, Int32 (int), UInt32, Int64 (long), UInt64, IntPtr, UIntPtr, Single или Double - тогда вы можете (или должны?) попробовать использовать Buffer.BlockCopy . Согласно странице MSDN для класса Buffer :
Этот класс обеспечивает лучшую производительность для управления примитивными типами, чем аналогичные методы в классе System.Array .
Используя пример C # 2.0 из @ 1013 * ответа @ OwenP's в качестве отправной точки, он будет работать следующим образом:
int[] front = { 1, 2, 3, 4 };
int[] back = { 5, 6, 7, 8 };
int[] combined = new int[front.Length + back.Length];
Buffer.BlockCopy(front, 0, combined, 0, front.Length);
Buffer.BlockCopy(back, 0, combined, front.Length, back.Length);
Синтаксис между Buffer.BlockCopy
и Array.Copy
, который использовал @OwenP, почти не отличается, но это должно быть быстрее (хотя бы незначительно).