Wenn Sie (Kopf-) Zeilen und / oder Spalten überspringen müssen, können Sie damit ein zweidimensionales Array erstellen:
var lines = File.ReadAllLines(path).Select(a => a.Split(';'));
var csv = (from line in lines
select (from col in line
select col).Skip(1).ToArray() // skip the first column
).Skip(2).ToArray(); // skip 2 headlines
Dies ist sehr nützlich, wenn Sie die Daten formen müssen, bevor Sie sie weiterverarbeiten (vorausgesetzt, die ersten beiden Zeilen bestehen aus der Überschrift, und die erste Spalte ist ein Zeilentitel - den Sie nicht im Array haben müssen, weil Sie nur die Daten betrachten wollen).
Hinweis : Mit dem folgenden Code können Sie die Überschriften und die erste Spalte leicht abrufen:
var coltitle = (from line in lines
select line.Skip(1).ToArray() // skip 1st column
).Skip(1).Take(1).FirstOrDefault().ToArray(); // take the 2nd row
var rowtitle = (from line in lines select line[0] // take 1st column
).Skip(2).ToArray(); // skip 2 headlines
Dieses Codebeispiel nimmt die folgende Struktur Ihrer *.csv
Datei an:
Hinweis: Wenn Sie leere Zeilen überspringen müssen - was manchmal praktisch ist, können Sie dies durch Einfügen tun
where line.Any(a=>!string.IsNullOrWhiteSpace(a))
zwischen der from
und der select
Anweisung in den obigen LINQ- Codebeispielen.
";"
als Trennzeichen verwendet ... dies hat CSV zu einem nicht standardmäßigen Imo gemacht :(