C# 使用CsvHelper读取带有可选列的CSV
我想读取一个有一些可选列的CSV文件,因为我已经使用“?”定义了一个具有可选属性的类,但无法使其工作C# 使用CsvHelper读取带有可选列的CSV,c#,csvhelper,C#,Csvhelper,我想读取一个有一些可选列的CSV文件,因为我已经使用“?”定义了一个具有可选属性的类,但无法使其工作 公共类MyItem { 公共int Id{get;set;} 公共int?MyValue{get;set;} } 映射类: 公共密封类MyItemMap:ClassMap { 公共MyItemMap() { Map(m=>m.Id); Map(m=>m.MyValue); } } 然后是一个控制台应用程序: static void Main(字符串[]args) { 使用(var reade
公共类MyItem
{
公共int Id{get;set;}
公共int?MyValue{get;set;}
}
映射类:
公共密封类MyItemMap:ClassMap
{
公共MyItemMap()
{
Map(m=>m.Id);
Map(m=>m.MyValue);
}
}
然后是一个控制台应用程序:
static void Main(字符串[]args)
{
使用(var reader=new StreamReader(@“C:\Test2Delete\ConsoleAppCSV\MyItem.csv”))
使用(var csv=新的CsvReader(读卡器))
{
RegisterClassMap(新的MyItemMap());
csv.Configuration.HeaderValidated=null;
尝试
{
var records=csv.GetRecords();
foreach(记录中的var r)
{
Console.WriteLine(r.Id+“”+r.MyValue);
}
Console.ReadLine();
}
捕获(例外e)
{
控制台写入线(e.Message);
Console.ReadLine();
}
}
}
}
因此,我希望能够读取包含“Id”、“MyValue”列的文件,以及仅包含“Id”列的文件。如何实现这一点?将
MyValue
设置为可选
公共密封类MyItemMap:ClassMap
{
公共MyItemMap()
{
Map(m=>m.Id);
Map(m=>m.MyValue).Optional();
}
}
请添加一个语言标记,这样它不仅是您正在使用的库,而且是所涉及的语言。