我想讀取一個數據表,其中包含將每行不同列組成的數據表。將具有不同列的數據表讀入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不支持可變長度的行。這些列在模式級別定義,非常類似於數據庫表。這些空白很可能是空值,您確實在循環中處理這些空值。 –