我有一个DataTable对象作为SQL读取的结果。一个典型的例子包含100行和16列。我需要多次迭代表格,提取值进行计算(应用于机器学习梯度下降)。
我正在尝试加速计算,并避免每次使用时都要转换从DataTable读取的值。是否有一种方法可以通过仅转换整个DataTable对象来创建新的2D索引数组,从而消除调用Convert.ToDouble 1000x100x16=1,600,000次的需要。理想情况下,为了代码可读性,我希望保留将数据引用为["colname",row]的方式。
目前的实现:
for(i=0;i<1000;i++)
foreach (DataRow row in dt.Rows)
calculation = Convert.ToDouble(row["col1"])....