| File: System\Configuration\ConfigurationPropertyCollection.cs | Web Access |
| Project: src\runtime\src\libraries\System.Configuration.ConfigurationManager\src\System.Configuration.ConfigurationManager.csproj (System.Configuration.ConfigurationManager) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using System.Collections; namespace System.Configuration { public class ConfigurationPropertyCollection : ICollection { private readonly ArrayList _items = new ArrayList(); internal ConfigurationProperty DefaultCollectionProperty => this[ConfigurationProperty.DefaultCollectionPropertyName]; public ConfigurationProperty this[string name] { get { for (int index = 0; index < _items.Count; index++) { ConfigurationProperty cp = (ConfigurationProperty)_items[index]; if (cp.Name == name) return (ConfigurationProperty)_items[index]; } return null; } } public int Count => _items.Count; public bool IsSynchronized => false; public object SyncRoot => _items; void ICollection.CopyTo(Array array, int index) { _items.CopyTo(array, index); } public IEnumerator GetEnumerator() { return _items.GetEnumerator(); } public void CopyTo(ConfigurationProperty[] array, int index) { ((ICollection)this).CopyTo(array, index); } public bool Contains(string name) { for (int index = 0; index < _items.Count; index++) { ConfigurationProperty cp = (ConfigurationProperty)_items[index]; if (cp.Name == name) return true; } return false; } public void Add(ConfigurationProperty property) { if (!Contains(property.Name)) _items.Add(property); } public bool Remove(string name) { for (int index = 0; index < _items.Count; index++) { ConfigurationProperty cp = (ConfigurationProperty)_items[index]; if (cp.Name != name) continue; _items.RemoveAt(index); return true; } return false; } public void Clear() { _items.Clear(); } } }