最近遇到了個問題多個byte數組解析拆分之后在合並,今天忙完之后騰出時間記錄一下供網友學習:
//System.Array類中的函數原型:
Copy(Array sourceArray, Array destinationArray, int length);
Copy(Array sourceArray, Array destinationArray, long length);
Copy(Array sourceArray, int sourceIndex, Array destinationArray, int destinationIndex, int length);
Copy(Array sourceArray, long sourceIndex, Array destinationArray, long destinationIndex, long length);
CopyTo(Array array, int index);
CopyTo(Array array, long index);
這些操作類似於字符串的一些操作,熟悉字符串操作的一看參數就知道代表的什么意思(以下為官方手冊給出的文檔):
前兩個:從第一個元素開始復制 Array 中的一系列元素,將它們粘貼到另一 Array 中(從第一個元素開始), 長度指定為 32 位或64位整數;
中間兩個:復制 Array 中的一系列元素(從指定的源索引開始),並將它們粘貼到另一 Array 中(從指定的目標索引開始),長度和索引指定為 32 位或64位整數;
最后兩個:從指定的目標數組索引處開始,將當前一維數組的所有元素復制到指定的一維數組中,索引指定為 32 位或64位整數。
下面以兩個byte數組舉個例子(將第二個數組地48位到第72位拷貝到第一個數組末尾):
//首先分配大小:
byte[] all_byte = new byte[byte_first.length + 24];
//拷貝第一個數組
System::Array.Copy(byte_first, all_byte, byte_first.length);
//拷貝第二個數組,從第48位開始,拷貝24位
System::Array.Copy(byte_second, 48, all_byte, all_byte.length, 24);
以上僅供參考,如有其它意見或建議,請評論回復。