【问题标题】:How to ignore certain properties and everything underneath those properties?如何忽略某些属性以及这些属性下的所有内容?
【发布时间】:2020-06-08 05:02:39
【问题描述】:

所以我正在尝试解析某个 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 .

但是,我正在努力解决的一件事是我不知道如何忽略“_____”行及其下方的所有内容。我计划做的一件事是调用忽略空白行选项,然后将其设置为“_”以忽略它。是否有更有效的方法来做到这一点,比如如果它与标题属性和格式不匹配,我可以说忽略这些值,并应用它来忽略该行下面的所有内容吗?

【问题讨论】:

    标签: c# csv parsing csvhelper


    【解决方案1】:

    您可以使用 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();
    

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 2018-04-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-11
      相关资源
      最近更新 更多