Microsoft.Office.Interop.Excel名前空間を使用していて、グラフを作成しています。ある時点で、あるシリーズの値を取得したい。MSDNでは、オブジェクトにプロパティがあると書かれています。これは、オブジェクトまたはを返します。私は。を想定しています。私のコードには、次のステートメントがあります。SeriesValuesRangearray of valuesobject[]
Series series = (Series)chart.SeriesCollection(i);
object[] values = (object[])series.Values;
私はInvalidCastException次のメッセージを受け取ります:Unable to cast object of type 'System.Object[*]' to type 'System.Object[]'.
Visual Studio 2008を使用してデバッグすると、の種類を調べることができ、series.Valuesと表示されますobject{object[1..7]}。これは(私が理解しているように)それがとして宣言されているobjectが、実際のタイプはであるということを意味しobject[1..7]ます。しかしobject[1..7]、実際には私がキャストできるタイプではなく、どちらもキャストできませんobject[*]。
配列が0ではなく1から始まるという事実と関係があるのではないかと思います(または推測します)(おそらくVBが原因です)。私はあなたがC#で1ベースの配列を定義できることさえ知りませんでした...