using System.Collections.Generic;
public static void Main()
string csvData = @"field1,field2,field3,field4
var lines = csvData.Split(new[] { '\n', '\r' }, StringSplitOptions.RemoveEmptyEntries);
var headers = lines[0].Split(',');
var result = new List<Dictionary<string, string>>(lines.Length - 1);
foreach (var line in lines.Skip(1))
var values = line.Split(',');
var rowDict = new Dictionary<string, string>(headers.Length);
for (int i = 0; i < headers.Length; i++)
rowDict[headers[i]] = values[i];
foreach (var dict in result)
foreach (var kvp in dict)
Console.WriteLine($"{kvp.Key}: {kvp.Value}");