using System.Collections.Generic;
public static void Main()
var csvParser = new CsvParser();
var planTypes = Enum.GetValues(typeof(PlanType)).Cast<PlanType>().Where(planType => csvParser.GetField(GetCsvHeader(planType)) == "1");
Console.WriteLine(String.Join("\r\n", planTypes));
public static string GetCsvHeader(PlanType planType)
return planType.GetType().GetFields().FirstOrDefault(f => f.Name == planType.ToString())?.GetCustomAttribute<CsvHeaderAttribute>()?.Value;
[CsvHeader("WLFR_BNFT_HEALTH_IND")]
[CsvHeader("WLFR_BNFT_DENTAL_IND")]
[CsvHeader("WLFR_BNFT_VISION_IND")]
[CsvHeader("WLFR_BNFT_LIFE_INSUR_IND")]
[CsvHeader("WLFR_BNFT_TEMP_DISAB_IND")]
[CsvHeader("WLFR_BNFT_LONG_TERM_DISAB_IND")]
[CsvHeader("WLFR_BNFT_UNEMP_IND")]
SupplementalUnemployment,
[CsvHeader("WLFR_BNFT_DRUG_IND")]
[CsvHeader("WLFR_BNFT_STOP_LOSS_IND")]
[CsvHeader("WLFR_BNFT_HMO_IND")]
[CsvHeader("WLFR_BNFT_PPO_IND")]
[CsvHeader("WLFR_BNFT_INDEMNITY_IND")]
[CsvHeader("WLFR_BNFT_OTHER_IND")]
[CsvHeader("UNALLOC_CONTRACTS_OTHER_IND")]
[CsvHeader("ALLOC_CONTRACTS_OTHER_IND")]
[AttributeUsage(AttributeTargets.Field)]
public class CsvHeaderAttribute : Attribute
public CsvHeaderAttribute(string value)
public string Value { get; set; }
public string GetField(string key)