TrueChart for WinForms (C1Chart2D)
ChartDataの設定と取得
ChartData オブジェクトの概要 > ChartDataの入力と変更 > ChartDataの設定と取得

CopyDataIn メソッド

C1Chart では、XYY1Y2、および Y3 データ配列オブジェクトは Object データ型を受け入れます。これにより、さまざまな .NET の配列型が ChartDataArray オブジェクト(PointData 配列は除く)に入力できるようになります。ChartDataArray オブジェクトの CopyDataIn メソッドは、さまざまな配列型をとることができる Object データ型を取り、これをデータ配列に読み込みます。

適切な実装を行うために、データセットの配列のセットを保持し、グラフを描画する前に値の配列を使用して C1Chart のデータ配列オブジェクトを更新することをお勧めします。これにより、データを完全に制御し、データ値の一括処理を制御することができます。以下の例は、配列を構築して、グラフのデータ配列オブジェクトに設定する簡単なサンプルコードを示します。

Visual Basic コードの書き方

Visual Basic
コードのコピー
Dim xp(9) As Single
Dim yp(9) As Single
Dim i As Integer
For i = 0 To 9
xp(i) = i
yp(i) = i * i
Next i
With C1Chart1.ChartGroups.ChartGroupsCollection(0).ChartData.SeriesList(0)
    .X.CopyDataIn(xp)
    .Y.CopyDataIn(yp)
End With

C# コードの書き方

C#
コードのコピー
float xp(10);
float yp(10);
int i;
for( i=0; i < 10; i++)
{
   xp[i] = i;
   yp[i] = i * i;
}
ChartDataSeries cds = c1Chart1.ChartGroups.ChartGroupsCollection[0].ChartData.SeriesList[0];
cds.X.CopyDataIn(xp);
cds.Y.CopyDataIn(yp);

CopyDataOut メソッド

CopyDataIn メソッドは配列データを ChartDataArray オブジェクトに読み込みますが、CopyDataOut メソッドは配列オブジェクトからデータを抽出します。このメソッドは、データ配列を含む Object データ型を返します。

Visual Basic コードの書き方

Visual Basic
コードのコピー
Dim xpo As Object
Dim cds As ChartDataSeries
cds = C1Chart1.ChartGroups.ChartGroupsCollection(0).ChartData.SeriesList(0)
xpo = cds.X.CopyDataOut()

C# コードの書き方

C#
コードのコピー
object xpo;
ChartDataSeries cds;
cds = c1Chart1.ChartGroups.ChartGroupsCollection[0].ChartData.SeriesList[0];
xpo = cds.X.CopyDataOut();

この Object の適切なデータ型の配列への変換を不要にするため、CopyDataOut メソッドは指定したデータ型の配列の生成を可能にする System.Type のパラメータも受け入れることができます。パラメータには実際のデータ型が必要なため、適切なデータ型を取得するために、コードには GetType()(C# では、typeof())関数を含める必要があります。以下のサンプルコードでは、配列は CopyDataOut メソッドによって、グラフの ChartDataArray オブジェクトから返されます。ただし、データ配列の型は単精度型です。

Visual Basic コードの書き方

Visual Basic
コードのコピー
Dim xpo As Single()
Dim ypo As Single()        
With C1Chart1.ChartGroups.ChartGroupsCollection(0).ChartData.SeriesList(0)        
xpo = .X.CopyDataOut(GetType(Single()))        
ypo = .Y.CopyDataOut(GetType(Single()))      
End With

C# コードの書き方

C#
コードのコピー
ChartDataSeries cds;        
cds = c1Chart1.ChartGroups.ChartGroupsCollection[0].ChartData.SeriesList[0];                 
float[] xpo = cds.X.CopyDataOut(typeof(float[]));        
float[] ypo = cds.Y.CopyDataOut(typeof(float[]));
注意:C# ユーザーの場合、CopyDataOut メソッドの実装は多少異なります。C# では、Object型の変数に配列データ型を設定することはできません。Object が適切なデータ型に明示的に変換される場合は、Object に配列を設定することができます。

Visual Basic コードの書き方

Visual Basic
コードのコピー
Dim xpo() As Single
xpo = CType(C1Chart1.ChartGroups.ChartGroupsCollection(0), Single())_
.ChartData.SeriesList(0).X.CopyDataOut(GetType(Single()))

C# コードの書き方

C#
コードのコピー
float[] xpo;
xpo = (float[])c1Chart1.ChartGroups.ChartGroupsCollection[0].ChartData       
.SeriesList[0].X.CopyDataOut(typeof(float[]));
関連トピック