using System.Globalization;
using System.Collections.Generic;
public static void Main()
string fileContent = "PermissionName,SomeRole,SomeRole2\r\nAdmin,True,False";
using (var reader = new StringReader(fileContent))
using (var csv = new CsvReader(reader, CultureInfo.InvariantCulture))
var records = new List<Roles>();
var headers = csv.HeaderRecord;
var roles = new List<Role>();
for (int i = 1; i < headers.Length; i++)
{RoleName = headers[i], IsGranted = csv.GetField<bool>(headers[i]), });
{PermissionName = csv.GetField<string>(headers[0]), Permissions = roles};
foreach(var item in roles) Console.WriteLine(item.RoleName + " = "+item.IsGranted);
public string PermissionName
public List<Role> Permissions