Ich habe eine Frage zu LINQ-Abfragen und Rückgabetypen. Ich möchte nur Werte aus einer .csv-Datei lesen, in der doppelte Werte durch ein Semikolon wie folgt getrennt sind:Lesen von .csv-Datei in Doppel-Array
0,016; 0,010; -0,020; -0,014; 0,020; 0,016; -0,019; -0,014; 0,023;
Das Lesen aus der Datei arbeitet mit der folgenden Aussage fein:
double pdValue;
double[] pdValues;
var values = File.ReadAllLines(path)
.Select(a => a.Split(';')
.Select(str => double.TryParse(str, out pdValue) ? pdValue : 0));
pdValues = values.ToArray();
Aber die letzte Zeile gibt den ‚umwandeln kann nicht implizit System.Collections.Generic.IEnumerable < double> [] zu verdoppeln‘ Fehler. Wenn versucht wird, es mit Array zu arbeiten, ändert sich der Fehler in 'Kann nicht implizit konvertieren System.Collections.Generic.IENumerable < double> [] zu double []'.
Beim Debuggen, ich kann schon sehen, dass die Werte Variable alle Werte aus der Datei hält (irgendwie) als Array ...
ich noch nichts gefunden, was mir einen Tip geben könnte, was genau ich mache ich hier falsch. Kann mir jemand helfen?
Vielen Dank im Voraus!
Ok sagte Sie die Werte Variable alle Werte aus der Datei hält (irgendwie) als Array .. err cos Sie sagte a.Split (';') .. so seine jetzt ein Array von Strings ... – BugFinder
Es ist sinnvoller, die 'File.ReadLines' anstelle der' File.ReadAllLines' zu verwenden, da die 'File.ReadLines' die Daten streamen, anstatt sie vollständig in den Speicher zu laden. –
Die Datei enthält mehr als eine Zeile? Es wäre also ein 'double [] []' Was brauchst du als Ergebnis? 'double [] []' oder 'double []' _ (alle Zeilen zusammengeführt) _ –