//------------------------------------------------------------------------------ // // Copyright (c) Microsoft Corporation. All rights reserved. // //------------------------------------------------------------------------------ // // namespace System.Collections.Specialized { using System.Runtime.InteropServices; using System.Diagnostics; using System; using System.Collections; using System.Globalization; /// /// Implements a hashtable with the key strongly typed to be /// a string rather than an object. /// public class StringDictionary : IEnumerable { internal Hashtable contents = new Hashtable(); /// /// Initializes a new instance of the System.Windows.Forms.StringDictionary class. /// public StringDictionary() { } /// /// Gets the number of key-and-value pairs in the System.Windows.Forms.StringDictionary. /// public virtual int Count { get { return contents.Count; } } /// /// Indicates whether access to the System.Windows.Forms.StringDictionary is synchronized (thread-safe). This property is /// read-only. /// public virtual bool IsSynchronized { get { return contents.IsSynchronized; } } /// /// Gets or sets the value associated with the specified key. /// public virtual string this[string key] { get { if (key == null) { throw new ArgumentNullException("key"); } return (string) contents[key.ToLower()]; } set { if (key == null) { throw new ArgumentNullException("key"); } contents[key.ToLower()] = value; } } /// /// Gets a collection of keys in the System.Windows.Forms.StringDictionary. /// public virtual ICollection Keys { get { return contents.Keys; } } /// /// Gets an object that can be used to synchronize access to the System.Windows.Forms.StringDictionary. /// public virtual object SyncRoot { get { return contents.SyncRoot; } } /// /// Gets a collection of values in the System.Windows.Forms.StringDictionary. /// public virtual ICollection Values { get { return contents.Values; } } /// /// Adds an entry with the specified key and value into the System.Windows.Forms.StringDictionary. /// public virtual void Add(string key, string value) { if (key == null) { throw new ArgumentNullException("key"); } contents.Add(key.ToLower(), value); } /// /// Removes all entries from the System.Windows.Forms.StringDictionary. /// public virtual void Clear() { contents.Clear(); } /// /// Determines if the string dictionary contains a specific key /// public virtual bool ContainsKey(string key) { if (key == null) { throw new ArgumentNullException("key"); } return contents.ContainsKey(key.ToLower()); } /// /// Determines if the System.Windows.Forms.StringDictionary contains a specific value. /// public virtual bool ContainsValue(string value) { return contents.ContainsValue(value); } /// /// Copies the string dictionary values to a one-dimensional instance at the /// specified index. /// public virtual void CopyTo(Array array, int index) { contents.CopyTo(array, index); } /// /// Returns an enumerator that can iterate through the string dictionary. /// public virtual IEnumerator GetEnumerator() { return contents.GetEnumerator(); } /// /// Removes the entry with the specified key from the string dictionary. /// public virtual void Remove(string key) { if (key == null) { throw new ArgumentNullException("key"); } contents.Remove(key.ToLower()); } } }