CsvHelper - 从 csv 文件任意行中跳过行

问题描述 投票:0回答:1

我有一个像这样的csv文件

“要跳过的一些行:第 1 行到 7 行”
姓名、家庭、手机
“第九行:应该被跳过”
“第十行:应该跳过”
A、B、1
C、D、2

如何使用 RowIndex 的 ShouldSkipRecord 跳过前七行和第三行?
我搜索了很多,但没有找到任何解决方案。

这是我的代码

var options = new TypeConverterOptions { Formats = new[] { "dd/MM/yyyy HH:mm:ss" } };
using var reader = new StreamReader(@"C:\Users\Arash\Desktop\fault1.csv");
var config = new CsvConfiguration(CultureInfo.InvariantCulture)
{
     ShouldSkipRecord = args =>
     {
        //some thing which show row index
     }
};
using var csv = new CsvReader(reader, config);
csv.Context.RegisterClassMap<FaultsModelMap>();
csv.Context.TypeConverterOptionsCache.AddOptions<DateTime>(options);
var records = csv.GetRecords<FaultsModel>();
c# csv csvhelper
1个回答
0
投票

亲爱的@JoshClose在Github中回答了我的问题,我与将面临同样问题的开发者分享解决方案。

var config = new CsvConfiguration(CultureInfo.InvariantCulture)
{
    ShouldSkipRecord = args =>
    {
        var rawRow = args.Row.Parser.RawRow;
        return rawRow < 8 || rawRow == 9 || rawRow == 10;
    }
};

请不要忘记,行索引从 1 开始,而不是 0

© www.soinside.com 2019 - 2024. All rights reserved.