Я использую пакет Math.Net Numerics для работы со статистикой с регрессией и т. д. Поскольку набор различных столбцов из конкретной таблицы может использоваться как независимые переменные, я решил написать метод, который будет создавать матрицу из DataTable непосредственно из запроса, создав массив double[][] и передав его методу DenseOfRowArrays() в MathNet.Numerics. Вызывающий код гарантирует, что в DataTable будут присутствовать только столбцы с числовыми значениями.
Я зашел так далеко, следуя ответам здесь: C# Cast Entire Array?
public static Matrix<double> DenseOfDataTable(DataTable dt)
{
double[][] arrayFromDataTable = dt.AsEnumerable().Select(row => Array.ConvertAll(row.ItemArray, item => (double)item)).ToArray();
return CreateMatrix.DenseOfRowArrays(arrayFromDataTable);
}
Моя проблема заключается в том, что при его запуске я получаю InvalidCastException на (double)item
с item
, показывающим значение 0,000 при проверке.
Convert.ToDouble()
- person I.B   schedule 20.04.2017