Microsoft.Office.Interop.Excel
名前空間を使用していて、グラフを作成しています。ある時点で、あるシリーズの値を取得したい。MSDNでは、オブジェクトにプロパティがあると書かれています。これは、オブジェクトまたはを返します。私は。を想定しています。私のコードには、次のステートメントがあります。Series
Values
Range
array of values
object[]
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ベースの配列を定義できることさえ知りませんでした...