Satırları ve / veya sütunları atlamanız (kafa-) yapmanız gerekiyorsa, bunu 2 boyutlu bir dizi oluşturmak için kullanabilirsiniz:
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
Daha fazla işlem yapmadan önce verileri şekillendirmeniz gerekiyorsa oldukça kullanışlıdır (ilk 2 satırın başlıktan oluştuğunu ve ilk sütunun bir satır başlığı olduğunu varsayalım. verileri dikkate almak istiyorum).
Not Aşağıdaki kodu kullanarak başlıkları ve 1. sütunu kolayca alabilirsiniz:
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
Bu kod örneği, *.csv
dosyanızın aşağıdaki yapısını varsayar :
Not: Boş satırları atlamanız gerekiyorsa - ki bu bazen kullanışlı olabilir, bunu ekleyerek yapabilirsiniz
where line.Any(a=>!string.IsNullOrWhiteSpace(a))
arasında from
ve select
içinde deyimi LINQ yukarıdaki kod örnekleri.
";"
ayırıcı olarak ... Bu yapmıştır CSV standart dışı imo :(