我正在尝试创建一个字节[]给定一些未知数量的字节。这是一个例子:
ArrayList al = new ArrayList();
al.Add(0xCA);
al.Add(0x04);
byte[] test = (byte[])al.ToArray(typeof(byte));
我收到的错误是数组中的一个或多个值无法转换为字节。我在这里做错了什么?
由于
答案 0 :(得分:11)
尝试List<byte>
,然后使用ToArray
答案 1 :(得分:9)
使用泛型集合而不是非泛型ArrayList
,或确保实际使用字节。 0xCA是int
,而不是byte
。
ArrayList al = new ArrayList();
al.Add((byte)0xCA);
al.Add((byte)0x04);
byte[] test = (byte[])al.ToArray(typeof(byte));
答案 2 :(得分:0)
如下所示使用List<byte>
。当您使用ArrayList然后调用all.Add(0xCA)时,您实际上是在向ArrayList添加int。
List<byte> al = new List<byte>();
...