2017-12-02 4 views
0

Ich habe eine Dictionary, die mit Lists gefüllt ist jede Liste stellt eine Datacolumn in meinem Datatable. Ich versuche, durch eine spezifische Liste im Wörterbuch zu iterieren, aber ich erhalte einen Fehler, wenn ich versuche, ich anzuhängen, anführend, dass ich nicht vom Gegenstand in Doppeltes umwandeln kann.C# Umwandlung von Objekt

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

Ich füge zum Wörterbuch hinzu durch;

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

Wo der Fehler passiert;

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

Welchen Fehler bekommen Sie? Sind Sie sicher, dass Ihre Daten nur "doppelte" Typen enthalten? Ist es möglich, dass es einen Nullwert enthält? –

+7

Convert.ToDouble * gibt * das konvertierte Double zurück, es ändert nicht 'i' an Ort und Stelle –

+1

was konvertiert man in double' Convert.ToDouble (i); 'tut nichts, um Variablen = Convert.ToDouble zuzuweisen (i); 'und' i' ist kein guter var Name ist dein Fall .. schreckliche Namenskonvention – MethodMan

Antwort

4

Ihr Problem ist hier: Convert.ToDouble(i);

ToDouble eine double gibt, ist es nicht i in ein Doppel nicht ändert. Sie müssen Folgendes tun:

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

Ugh, ich fühle mich wie ein Idiot .. Danke! – User9123