C# - Array.copy目标数组不够长

时间:2015-09-04 08:18:50

标签: c# arrays bytearray

我正在尝试将一个字节数组复制到另一个(较小的)数组中,以过滤掉电报的最后一个字节。

代码:

int length = 0;
length = streamLMS.EndRead(x); //write the length of the telegram
byte[] Recvtelegram = new byte[(length-1)];

Array.Copy(LMSRecvBuffer, 0, Recvtelegram, 0, length);
  //Where LMSRecvBuffer is the sourceArray, 0 is the sourceIndex and 
  //destinationIndex and Recvtelegram is the destinationArray.

程序在没有从长度中减去1的情况下工作,但是我想减去1个字节来过滤掉最后一个字节。

调试时出错: 类型' System.ArgumentException'的例外情况发生在mscorlib.dll但未在用户代码中处理。目标矩阵不够长。

有谁知道如何解决这个问题?

提前致谢

1 个答案:

答案 0 :(得分:2)

试试这个

int length = 0;
length = streamLMS.EndRead(x); //write the length of the telegram
byte[] Recvtelegram = new byte[(length-1)];

Array.Copy(LMSRecvBuffer, 0, Recvtelegram, 0, length-1);