【发布时间】:2017-11-15 19:45:58
【问题描述】:
我有一个datatable,它是通过合并多个其他人创建的,数据最初来自导入的 excel 文件。我基本上有值列,尽管列和名称的数量事先是未知的,并且前两列总是被忽略。
我正在尝试为我的datatable 的每一列创建一个xydataseries<double, double>() where; x 是从 1 开始的递增整数,y = 列数据。我已经在点击事件(wpf)上尝试过这个;
private void btn_Click(object sender, RoutedEventArgs e)
{
foreach (DataColumn i in dt.Columns)
{
var x = 1;
var series = new XyDataSeries<double, double>();
foreach (DataRow j in dt.Rows)
{
Convert.ToDouble(j);
series.Append(x++,j);
}
}
}
但我在 j 的最后一行出现错误 - 无法从 'System.Data.DataRow' 转换为 'double'。
我是 c# 和一般编程的新手,感谢您的帮助。
【问题讨论】:
-
使用
j[i]访问单元格。 msdn.microsoft.com/en-us/library/5akhx035(v=vs.110).aspx - 这比可以转换为双倍。 -
我得到一个错误,'cannot convert from object to double' 当我这样做 - Convert.ToDouble(j[i]); series.Append(one++, j[i]);
-
您必须将转换后的值传递给第二行,将您的代码更改为
var d = Convert.ToDouble(j[i]); series.Append(x++, d);