using System.Collections.Generic;
using CsvHelper.Configuration;
public class SortedSearch
public static void Main(string[] args)
var input = @"""Id"" , ""Name"" , ""Job""
""1"" , ""Alan"" , ""Engineer""
""2"" , ""Bob"" , ""Technician""
""3"" , ""Charlie"" , """"
""4"" , ""Danny"" , """"";
var records= new List<Foo>();
using (TextReader reader = new StringReader(input))
using (var csvReader = new CsvReader(reader))
csvReader.Configuration.Delimiter=",";
csvReader.Configuration.HasHeaderRecord=false;
csvReader.Configuration.TrimOptions=TrimOptions.Trim | TrimOptions.InsideQuotes;
csvReader.Configuration.RegisterClassMap<FooMap>();
records = csvReader.GetRecords<Foo>().ToList();
var result = records.Where(x=> !string.IsNullOrEmpty(x.Job)).ToList();
public string Id { get; set; }
public string Name { get; set; }
public string Job { get; set; }
public class FooMap : ClassMap<Foo>
Map(m => m.Name).Index(1);
Map(m => m.Job).Index(2);