所以我试图解析如下的某个csvfile:
no header values here
(still no header)
Header1,Header2,Header3 | Just trying to get these values
1,2,3 |
4,5,6 V
_________
(values that I'd like to ignore here)
我最近通过实现csv.Read()找出了如何一直跳到标题开始的位置。对于这些值,我想要获取的只是从Header1行一直向下到4的位置。
但是,我苦苦挣扎的一件事是,我不知道如何忽略“ _____”行及其下的所有内容。我打算做的一件事是调用忽略空白行选项,然后将其设置为“ _”以忽略它。有没有一种更有效的方法,例如我可以说如果值与标题属性和格式不匹配,则忽略这些值,并将其应用于忽略该行下面的所有内容?
您可以使用linq尝试下面的代码,
var file = File.ReadAllLines(@"Your File Path")
.Where(a => !a.Equals(String.Empty))
.Select((a, i) => new { Data = a, RowNumber = i })
.ToList();
var ignoreRowNo = file.Where(a => a.Data.Contains("_"))
.Select(a => a.RowNumber)
.OrderBy(a => a)
.Take(1).ToList();
var result = file.Where(a => a.RowNumber < ignoreRowNo[0])
.Select(a => a.Data.Split(','))
.ToList();
希望这会有所帮助。