using System.Collections;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Globalization;
using System.Collections.ObjectModel;
using CsvHelper.Configuration;
using CsvHelper.Configuration.Attributes;
using CsvHelper.Expressions;
using CsvHelper.TypeConversion;
public static void Test()
var csvString = GetCsv();
var objectList = new List<dynamic>();
var parserConfig = new CsvConfiguration(CultureInfo.InvariantCulture)
using (var reader = new StringReader(csvString))
using (var csv = new CsvReader(reader, parserConfig))
dynamic objectRecords = new ExpandoObject();
while (csv.TryGetField(iterator, out string? field))
((IDictionary<string, object>)objectRecords).Add(iterator.ToString(), field);
Console.WriteLine(field);
objectList.Add(objectRecords);
static string GetCsv() =>
12.0000¦6.11000¦LB¦9189AD510001¦Photo Insert 5\" x 5\"Iron¦¦¦23.00¦13.50¦5.00¦IN¦1726.31250¦
public static void Main()
Console.WriteLine("Environment version: {0} ({1}), {2}.", System.Runtime.InteropServices.RuntimeInformation.FrameworkDescription , Environment.Version, Environment.OSVersion);
Console.WriteLine("OS Version: {0}, NewLine: {1}", System.Environment.OSVersion, System.Text.Json.JsonSerializer.Serialize(Environment.NewLine));
Console.WriteLine("{0} version: {1}", typeof(CsvReader).Assembly.GetName().Name, typeof(CsvReader).Assembly.FullName);
Console.WriteLine("Failed with unhandled exception: ");