The Labs \ Source Viewer \ SSCLI \ System.Configuration \ ConfigurationPropertyCollection

  1. //------------------------------------------------------------------------------
  2. // <copyright file="ConfigurationPropertyCollection.cs" company="Microsoft">
  3. //
  4. // Copyright (c) 2006 Microsoft Corporation. All rights reserved.
  5. //
  6. // The use and distribution terms for this software are contained in the file
  7. // named license.txt, which can be found in the root of this distribution.
  8. // By using this software in any fashion, you are agreeing to be bound by the
  9. // terms of this license.
  10. //
  11. // You must not remove this notice, or any other, from this software.
  12. //
  13. // </copyright>
  14. //------------------------------------------------------------------------------
  15. using System;
  16. using System.Collections;
  17. namespace System.Configuration
  18. {
  19.    
  20.     public class ConfigurationPropertyCollection : ICollection
  21.     {
  22.        
  23.         private ArrayList _items = new ArrayList();
  24.        
  25.         public int Count {
  26.             get { return _items.Count; }
  27.         }
  28.        
  29.         public bool IsSynchronized {
  30.             get { return false; }
  31.         }
  32.        
  33.         public object SyncRoot {
  34.             get { return _items; }
  35.         }
  36.        
  37.         internal ConfigurationProperty DefaultCollectionProperty {
  38.             get { return this[ConfigurationProperty.DefaultCollectionPropertyName]; }
  39.         }
  40.        
  41.         void ICollection.CopyTo(Array array, int index)
  42.         {
  43.             _items.CopyTo(array, index);
  44.         }
  45.        
  46.         public void CopyTo(ConfigurationProperty[] array, int index)
  47.         {
  48.             ((ICollection)this).CopyTo(array, index);
  49.         }
  50.        
  51.         public IEnumerator GetEnumerator()
  52.         {
  53.             return _items.GetEnumerator();
  54.         }
  55.        
  56.         public ConfigurationProperty this[string name]
  57.         {
  58.             get {
  59.                 for (int index = 0; index < _items.Count; index++) {
  60.                     ConfigurationProperty cp = (ConfigurationProperty)_items[index];
  61.                     if (cp.Name == name) {
  62.                         return (ConfigurationProperty)_items[index];
  63.                     }
  64.                 }
  65.                 return (ConfigurationProperty)null;
  66.             }
  67.         }
  68.        
  69.         public bool Contains(string name)
  70.         {
  71.             for (int index = 0; index < _items.Count; index++) {
  72.                 ConfigurationProperty cp = (ConfigurationProperty)_items[index];
  73.                 if (cp.Name == name) {
  74.                     return true;
  75.                 }
  76.             }
  77.             return false;
  78.         }
  79.        
  80.         public void Add(ConfigurationProperty property)
  81.         {
  82.             if (Contains(property.Name) != true) {
  83.                 _items.Add(property);
  84.             }
  85.         }
  86.        
  87.         public bool Remove(string name)
  88.         {
  89.             for (int index = 0; index < _items.Count; index++) {
  90.                 ConfigurationProperty cp = (ConfigurationProperty)_items[index];
  91.                
  92.                 if (cp.Name == name) {
  93.                     _items.RemoveAt(index);
  94.                     return true;
  95.                 }
  96.             }
  97.             return false;
  98.         }
  99.        
  100.         public void Clear()
  101.         {
  102.             _items.Clear();
  103.         }
  104.     }
  105. }

Developer Fusion