gpt4 book ai didi

c# - CSVHelper 必填字段

转载 作者:太空狗 更新时间:2023-10-29 22:26:13 24 4
gpt4 key购买 nike

解析csv文件时,如何定义特定字段为必填字段。本质上,我想确保给定的字段永远不会为空,如果是,那么我希望抛出异常。这是映射类:

public sealed class DataMapper : CsvClassMap<DataType>
{
public DataMapper()
{
Map(m => m.Field1).Name("FirstField");
Map(m => m.Field2).Name("SecondField");
Map(m => m.Field3).Name("ThirdField"); // this field should be mandatory
}
}

和用法:

List<DataType> data;
using (var sr = new StreamReader(localFilePath))
{
var reader = new CsvReader(sr);
reader.Configuration.RegisterClassMap<DataMapper>();
data = reader.GetRecords<DataType>().ToList();
}

目前我只是查看数据列表中的结果如下:

var numberOfInvalidRecords = data.Count(data => string.IsNullOrEmpty(data.Field3));
if (nullAccountHolderRecords > 0)
{
//handle
}

我无法在 CSVHelper 文档中找到内置功能。我错过了什么吗?

最佳答案

我可能会使用 ConvertUsing 来做到这一点扩展名:

public sealed class DataMapper : CsvClassMap<DataType>
{
public DataMapper()
{
Map(m => m.Field1).Name("FirstField");
Map(m => m.Field2).Name("SecondField");
Map(m => m.Field3).ConvertUsing(row =>
{
if(string.IsNullOrEmpty(row.GetField<string>("ThirdField")))
throw new Exception("Oops, ThirdField is empty!");
return row.GetField<string>("ThirdField");
});
}
}

关于c# - CSVHelper 必填字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26712912/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com