C#字节数组索引超出了数组的范围

时间:2014-08-17 14:14:22

标签: c# arrays byte

亲爱的开发人员为什么我会收到错误? (索引超出了数组的范围)

Debug info

1 个答案:

答案 0 :(得分:4)

请注意,您创建MagicList为450的数组,但在调试器中,它表示它是一个300的数组。这是因为您明确创建的数组实际上从未使用过。它立即被GetAsBinary返回的数组替换。该数组只有300个字节长,这就是你的代码失败的原因。您的循环退出条件必须考虑实际的数组大小,而不是假定大小。以下代码显示了一种可以避免此问题的方法。

byte[] magicList = DBLite.dbMu.GetAsBinary("magicList");
DBLite.dbMu.Close();
for (int i = 0; i < magicList.Length/3; i++) {