2012-05-14 19 views
1

私はリストと呼ばれるaraylistオブジェクトを持っています。ここでは、arraylistオブジェクトをbyte []に​​変換したいのですが、以下のコーディングでエラーが発生します: "ソース配列の少なくとも1つの要素先のArrayType」 私のコーディングに投げ落とされない: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

これは同じ例外があります.1つ以上の要素がバイト型でなければ、btwは私にとっては 'list.CopyTo(obj);'もっと素敵です。 – Likurg

関連する問題