2017-12-02 48 views
0

我有一個Dictionary它充滿了Lists每個列表代表我Datatable中的Datacolumn。我試圖遍歷字典中的特定列表,但在嘗試追加我時出現錯誤,指出我無法將對象轉換爲雙精度。C#從對象轉換

Dictionary<string, Dictionary<string, List<object>>> dict; 

我添加到字典了;

dict = dt.Columns.Cast<DataColumn>().ToDictionary(c => c.ColumnName, c => dt.AsEnumerable().Select(r => r[c]).ToList()); 

發生錯誤的地方;

XyDataSeries<double,double> xyseries; 

private void chkbx1_Checked(object sender, RoutedEventArgs e) 
{ 
    var list = dict["ColumnName1"]; 

    foreach (var i in list) 
    { 
     Convert.ToDouble(i); 
     xyseries.Append(one++, i); 
    } 

} 
+2

您會得到什麼錯誤?你確定你的數據只包含'double'類型嗎?它可能包含空值嗎? –

+7

Convert.ToDouble *返回*轉換後的double,它不會更改'i' –

+1

什麼是轉換爲double Convert.ToDouble(i);'這不需要分配一些變量= Convert.ToDouble (i);'和'我'是不是一個好的var名字是你的情況..可怕的命名約定 – MethodMan

回答

4

你的問題是在這裏:Convert.ToDouble(i);

ToDouble返回double,它不會改變i成雙。您需要執行以下操作:

foreach (var i in list) 
{ 
    var d = Convert.ToDouble(i); 
    xyseries.Append(one++, d); 
} 
+0

呃,我覺得自己像一個白癡..謝謝! – User9123