【发布时间】:2019-04-12 15:52:47
【问题描述】:
我想读取一个包含一些可选列的 CSV 文件,因为我已经使用“?”定义了一个具有可选属性的类。但不能让它工作。
public class MyItem
{
public int Id { get; set; }
public int? MyValue { get; set; }
}
映射类:
public sealed class MyItemMap : ClassMap<MyItem>
{
public MyItemMap()
{
Map(m => m.Id);
Map(m => m.MyValue);
}
}
然后是控制台应用程序:
static void Main(string[] args)
{
using (var reader = new StreamReader(@"C:\Test2Delete\ConsoleAppCSV\MyItem.csv"))
using (var csv = new CsvReader(reader))
{
csv.Configuration.RegisterClassMap(new MyItemMap());
csv.Configuration.HeaderValidated = null;
try
{
var records = csv.GetRecords<MyItem>();
foreach (var r in records)
{
Console.WriteLine(r.Id + " " + r.MyValue);
}
Console.ReadLine();
}
catch (Exception e)
{
Console.WriteLine(e.Message);
Console.ReadLine();
}
}
}
}
所以我希望能够读取包含“Id”、“MyValue”列的文件以及仅包含“Id”列的文件。我怎样才能做到这一点?
【问题讨论】:
-
请添加语言标签,这样不仅是您正在使用的库,还包括所涉及的语言。