<PackageReference Include="System.Configuration.ConfigurationManager" Version="4.7.0-preview1.19504.10" />

SettingsPropertyCollection

Contains a collection of SettingsProperty objects.
using System.Collections; namespace System.Configuration { public class SettingsPropertyCollection : IEnumerable, ICloneable, ICollection { private Hashtable _hashtable; private bool _readOnly; public SettingsProperty this[string name] { get { return _hashtable[name] as SettingsProperty; } } public int Count => _hashtable.Count; public bool IsSynchronized => false; public object SyncRoot => this; public SettingsPropertyCollection() { _hashtable = new Hashtable(10, StringComparer.CurrentCultureIgnoreCase); } public void Add(SettingsProperty property) { if (_readOnly) throw new NotSupportedException(); OnAdd(property); _hashtable.Add(property.Name, property); try { OnAddComplete(property); } catch { _hashtable.Remove(property.Name); throw; } } public void Remove(string name) { if (_readOnly) throw new NotSupportedException(); SettingsProperty settingsProperty = (SettingsProperty)_hashtable[name]; if (settingsProperty != null) { OnRemove(settingsProperty); _hashtable.Remove(name); try { OnRemoveComplete(settingsProperty); } catch { _hashtable.Add(name, settingsProperty); throw; } } } public IEnumerator GetEnumerator() { return _hashtable.Values.GetEnumerator(); } public object Clone() { return new SettingsPropertyCollection(_hashtable); } public void SetReadOnly() { if (!_readOnly) _readOnly = true; } public void Clear() { if (_readOnly) throw new NotSupportedException(); OnClear(); _hashtable.Clear(); OnClearComplete(); } protected virtual void OnAdd(SettingsProperty property) { } protected virtual void OnAddComplete(SettingsProperty property) { } protected virtual void OnClear() { } protected virtual void OnClearComplete() { } protected virtual void OnRemove(SettingsProperty property) { } protected virtual void OnRemoveComplete(SettingsProperty property) { } public void CopyTo(Array array, int index) { _hashtable.Values.CopyTo(array, index); } private SettingsPropertyCollection(Hashtable h) { _hashtable = (Hashtable)h.Clone(); } } }