如何在C#中创建未知大小的byte []?

时间:2010-07-08 14:43:06

标签: c#

我正在尝试创建一个字节[]给定一些未知数量的字节。这是一个例子:

ArrayList al = new ArrayList();
al.Add(0xCA);
al.Add(0x04);
byte[] test = (byte[])al.ToArray(typeof(byte));

我收到的错误是数组中的一个或多个值无法转换为字节。我在这里做错了什么?

由于

3 个答案:

答案 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>();
...