public static void Main()
var csvParser = new CsvParser();
var enumValues = Enum.GetValues(typeof(PlanType)).Cast<PlanType>();
var enumFields = typeof(PlanType).GetFields();
var planTypes = enumValues.Where(e => csvParser.GetField(enumFields.FirstOrDefault(f => f.Name == e.ToString())?.GetCustomAttribute<CsvHeaderAttribute>()?.Value) == "1");
Console.WriteLine(String.Join("\r\n", planTypes));
[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)
return key?.Length % 2 == 0 ? "0" : "1";