byte两个或多个数组合并


最近遇到了个问题多个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);

以上仅供参考,如有其它意见或建议,请评论回复。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM