将arraylist对象转换为byte []

时间:2012-05-14 06:22:04

标签: c# bytearray

我有一个名为list的araylist对象,这里我想将我的arraylist对象转换为byte [],同时执行下面的编码,它给出了一个错误:“源数组中至少有一个元素无法转发到目标数组类型” 我的编码:

 byte[] obj= new byte[list.Count];
     list.CopyTo(obj); 

这里我的数组列表对象从ssrs reports返回报告数据。我想在这里解决这个问题。

2 个答案:

答案 0 :(得分:3)

看看这个(这会告诉你哪里可能有问题)

        List<object> list = new List<object>();
        list.Add((byte)1);
        list.Add((byte)0);
        list.Add("wtf");
        list.Add((byte)1);
        byte[] obj = list.OfType<byte>().ToArray();
        if(obj.Length!=list.Count)
        {
            //Exception, not all objects in list is 'byte'
        }

答案 1 :(得分:1)

如果您的意思是ArrayList包含byte类型的项,那么请使用以下语法:

byte[] obj = (byte[])list.ToArray(typeof(byte));

否则你想要的东西不清楚,因为对象不能像那样强制转换为字节,所以请更好地解释。