2012-05-14 103 views
1

我已經araylist對象命名列表,在這裏,我想轉換我的ArrayList對象爲byte [],同時做下面的編碼它給了一個錯誤:源數組中「至少有一個元素可以不被拋棄到目標數組類型」 我的編碼:轉換ArrayList對象爲byte []

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

這裏我的數組對象列表reports.what我想在這裏做來解決這個問題再次從報告數據SSRS。

+0

那麼錯誤信息是非常明確的 - 它期待你的'list'是*字節*值,不包含報表數據對象。這聽起來像你想要某種形式的序列化...是使用你自己的類的這些對象?你期待什麼樣的序列化? –

+0

你怎麼能指望它投ReportData或任何以字節爲單位?你想要他們作爲內存字節? – SimpleVar

+0

「list」是什麼? –

回答

2

看這個(這將告訴你在哪裏可以是一個問題)

 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

如果你指的是ArrayList包含byte類型的項目,然後用這樣的語法:

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

否則,你想要的是不明確的,因爲對象不能被轉換爲字節就是這樣,所以請解釋更好。

+0

他將有同樣的異常,如果有一個或多個元素不是字節型,順便說一句,我'list.CopyTo(OBJ);'更漂亮。 – Likurg

相關問題