#c# #csvhelper
#c# #csvhelper
Вопрос:
Я хочу прочитать файл 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:Test2DeleteConsoleAppCSVMyItem.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». Как я могу этого добиться?
Комментарии:
1. Пожалуйста, добавьте языковой тег, чтобы указать не только библиотеку, которую вы используете, но и используемый язык.
Ответ №1:
Устанавливается MyValue
как необязательный.
public sealed class MyItemMap : ClassMap<MyItem>
{
public MyItemMap()
{
Map(m => m.Id);
Map(m => m.MyValue).Optional();
}
}