Maybe cleaner using (parms ISettingsProvider[] providers)