Wenn Sie (Kopf-)Zeilen und/oder Spalten überspringen müssen, können Sie auf diese Weise ein 2-dimensionales 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 (unter der Annahme, dass die ersten beiden Zeilen aus der Überschrift bestehen und die erste Spalte ein Zeilentitel ist - den Sie nicht im Array haben müssen, weil Sie nur die Daten betrachten wollen).
N.B.. Sie können die Überschriften und die 1. Spalte ganz einfach mit dem folgenden Code 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 geht von der folgenden Struktur Ihrer *.csv
Datei:
Anmerkung: Wenn Sie leere Zeilen überspringen müssen - was manchmal praktisch sein kann -, können Sie dies durch Einfügen von
where line.Any(a=>!string.IsNullOrWhiteSpace(a))
zwischen den from
et le select
Anweisung in der LINQ Code-Beispiele oben.