我有Dictionary
个列表,每个List
都是从DataColumn
创建的。
dict = dt.Columns.Cast<DataColumn>().ToDictionary(c => c.ColumnName, c => dt.AsEnumerable().Select(r => r[c]).ToList());
现在,我如何根据列名称将特定列表中的值传递给另一个变量(或列号是否有效)?
我基本上是在为每个列/列创建XyDataSeries<double, double>()
,其中列值等于y&amp; X = 1 + +。
像这样;
var xyData = new XyDataSeries<double, double>();
foreach (var i in dict."columnname")
{
var one = 1;
xyData.Append(one++, i);
}
更新
我在最后一行的foreach循环中有一个错误。错误状态'无法从'object'转换为'double''。
XyDataSeries<double,double> xyseries;
var list = dict["ColumnName"];
foreach (var i in list)
{
Convert.ToDouble(i);
xyseries.Append(one++, i);
}
我尝试更改Dictionary<string, Dictionary<string, List<object>>> dict;
到Dictionary<string, Dictionary<string, List<double>>> dict;
但这引发了另一个错误。我应该注意,数据是在应用程序运行时导入的,因此在运行时列是空的,但是上面的foreach是在复选框检查的事件中。
最终更新
是的我还在学习......这很好用。
foreach (var i in list)
{
var d = Convert.ToDouble(i);
xyseries.Append(one++, d);
}
答案 0 :(得分:3)
您可以使用Keys
属性:
foreach (var i in dict.Keys)
{
// i is key in dictionaty -> ColumnName
var listByColumnName = dict[i];
}