行ごとに可変な列からなるデータテーブルを配列に読み込みたいとします。C#でさまざまな列のデータテーブルを配列に読み込む
私のサンプルデータは、私は、以下のように配列にそれを置くことに成功し、この
1 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.098 0.000
1 0.000 0.051 0.851 0.000 0.000 0.000 0.000
1 0.000 0.000 0.000 0.000 0.000 0.000 0.266 0.203 0.000
1 0.011 0.210 0.311 0.000 0.000 0.000 0.000 0.000 0.000
1 0.000 0.000 0.000 0.000 0.000 0.009 0.007 0.497
1 0.004 0.023 0.063 0.140 0.000 0.000 0.000 0.000 0.000
1 0.027 0.010 0.130 0.192 0.156 0.082 0.068
次のようになります。
public static double[][] dataTableToMatrix(DataTable dt)
{
double[][] data = new double[dt.Rows.Count][];
for (int x = 0; x < dt.Rows.Count;x++)
{
data[x] = new double[dt.Columns.Count];
for (int y = 0; y < dt.Columns.Count; y++)
{
if ((dt.Rows[x][y]) != DBNull.Value)
{
data[x][y] = Convert.ToDouble(dt.Rows[x][y]);
}
else
{
break;
}
}
}
return data;
}
私は上記のコードを試みたが、結果の配列は、常に最高の列を持っています短い列があるときはいつでもゼロと共にカウントする。私は各行の最後の値が次の行にジャンプするまでそれを読んでいます。この問題の解決策はありますか?
を作成することも可能です行の長さが異なる表行の長さと値が誤っていると確信していませんか? – Gusman
DataTablesは可変長の行をサポートしていません。列はスキーマレベルで定義され、データベーステーブルと同様です。これらのブランクはヌル値である可能性があります。これは実際にループで処理されています。 –