2017-04-06 7 views
2

Ich habe den folgenden Code und ich bekomme eine Fehlermeldung, dass die Eingabezeichenfolge nicht im richtigen Format war. Bitte helfen Sie mirKonvertieren Zeichenfolge in DateTime-Format Probleme C#

List<Crime> crimeList = new List<Crime>(); 
while (!reader.EndOfStream) 
{ 
    var line = reader.ReadLine(); 
    var values = line.Split(','); 
    crimeList.Add(new Crime() 
    { 
     Dates = DateTime.ParseExact(values[0],"yyyy-MM-dd HH:mm:ss",CultureInfo.InvariantCulture), 
     Category = values[1], 
     Description = values[2], 
     DayOfWeek = values[3], 
     PdDistrict = values[4], 
     Resolution = values[5], 
     Address = values[6], 
     x = Convert.ToDouble(values[7]), 
     y = Convert.ToDouble(values[8]) 
}); 

values[0]2015-05-13 23:53:00 ist. https://s23.postimg.org/x0g4k37kr/datetime_problem.png

+2

Es wäre einfacher gewesen, Ihnen zu helfen, wenn Sie den String-Wert als * text * in die Frage eingefügt hätten. Ich nehme an, dass es einen nicht druckbaren Charakter enthält ... können Sie das in einem [mcve] reproduzieren? –

Antwort

10

Die Ausnahme von dieser Linie war x = Convert.ToDouble(values[7]), weil von dem, was ich in dein Bild gesehen haben, ist values[7] eine string von Adresse: - ?.

+0

Ich arbeite an einer riesigen CSV-Datei (800k Zeilen) und ich denke, dass die 7. Spalte nur 1 Wort enthält, aber anscheinend gibt es einige Einträge mit Kommas :( – 99LittleBugsInTheCode

+0

Ja, es passiert. Sie können die 'Länge' Ihres Arrays überprüfen um sicherzustellen, dass Sie die richtigen Daten erhalten –

+0

Ich denke, dass Ihre Datetime-Konvertierung korrekt ist, also muss es etwas anderes sein Mein Vorschlag ist, jede Zeile auskommentieren, bis Sie herausfinden, welche Zeile Fehler verursacht –

Verwandte Themen