объединить заголовки CSV в новый - PullRequest
0 голосов
/ 20 апреля 2020

Я использую библиотеку CSVHelper для анализа CSV-файлов, но мне нужно сопоставить буксирные столбцы с одним столбцом, который содержит данные для каждого из них: например, {name}: {firstName} {lastName}

Есть ли способ сделать это?

Спасибо

1 Ответ

0 голосов
/ 21 апреля 2020

Делает ли это то, что вы искали?

public class Program
{
    public static void Main(string[] args)
    {
        using (MemoryStream stream = new MemoryStream())
        using (StreamWriter writer = new StreamWriter(stream))
        using (StreamReader reader = new StreamReader(stream))
        using (CsvReader csv = new CsvReader(reader, CultureInfo.InvariantCulture))
        {
            writer.WriteLine("Id,FirstName,LastName");
            writer.WriteLine("1,Bob,Barker");
            writer.WriteLine("2,Davey,Jones");
            writer.Flush();
            stream.Position = 0;

            csv.Configuration.RegisterClassMap<FooClassMap>();

            var records = csv.GetRecords<Foo>().ToList();
        }
    }
}

public class FooClassMap : ClassMap<Foo>
{
    public FooClassMap()
    {
        Map(m => m.Id);
        Map(m => m.Name).ConvertUsing(row => row.GetField("FirstName") + " " + row.GetField("LastName"));
    }
}

public class Foo
{
    public int Id { get; set; }
    public string Name { get; set; }
}
...