public static ICollection <String> GetAllFields(this PwDatabase pwDatabase, bool includeCustomFieldsFromKPTemplates) { var fields = new Collection <String>(); foreach (var pwEntry in pwDatabase.RootGroup.GetEntries(true)) { foreach (var str in pwEntry.Strings.GetKeys()) { // Filter template header fields generated by KPEntryTemplates plugin. // https://github.com/cristianst85/QuickConnectPlugin/issues/10 if (!fields.Contains(str) && !str.StartsWith("_etm_")) { fields.Add(str); } } } if (includeCustomFieldsFromKPTemplates) { foreach (var customField in pwDatabase.GetCustomFieldsFromKPTemplates()) { if (!fields.Contains(customField)) { fields.Add(customField); } } } return(fields); }