日期:2014-05-16  浏览次数:20888 次

各位大哥求助在byte数组的某个位置写入其它类型的数据,比如int
各位大哥求助如果在byte数组的某个位置写入其它类型的数据,比如int
 小弟知道在C++里很好弄的,弄个指针指向那里再写入就可以了,但是在C#里不知道如何操作,找了很久都没有找到结果,还请各位指点一下小弟
在此谢过
------解决方案--------------------
数组本身是需要连续内存作为保证的,所以需要截取放在两个内存空间,再申请长度为原数组与插入数组之和的内存空间存放合并之后的数组。
list<T>可以轻松实现这样的功能Insert,而且当List<T>对象的Item元素数量超过了Capacity的数量时,List<T>对象会重新申请一块大小是原来Capacity的两倍的内存空间,然后将当前所有Item元素以及待添加元素复制到新的内存空间中。
------解决方案--------------------
byte[] xxx=new byte[xxxxx];
int aaa=1;
byte[] intBytes=BitConvert.GetBytes(aaa);
System.Buffer.BlockCopy(intBytes,0,xxx,指定位置,intBytes.Length);
------解决方案--------------------
也容易啊。
用Array.Copy就可以

public static void Copy(
Array sourceArray,
int sourceIndex,
Array destinationArray,
int destinationIndex,
int length
)

http://msdn.microsoft.com/en-us/library/z50k9bft(v=vs.110).aspx
------解决方案--------------------
BitConverter把int转换成数组
然后用一个循环修改。

当然也可以用unsafe,用指针,那么和C是一样的。