Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / CompMod / System / Collections / Specialized / StringDictionary.cs / 1305376 / StringDictionary.cs
//------------------------------------------------------------------------------ //// 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.ComponentModel.Design.Serialization; using System.Globalization; ////// [Serializable] [DesignerSerializer("System.Diagnostics.Design.StringDictionaryCodeDomSerializer, " + AssemblyRef.SystemDesign, "System.ComponentModel.Design.Serialization.CodeDomSerializer, " + AssemblyRef.SystemDesign)] // @ public class StringDictionary : IEnumerable { // For compatibility, we want the Keys property to return values in lower-case. // That means using ToLower in each property on this type. Also for backwards // compatibility, we will be converting strings to lower-case, which has a // problem for some Georgian alphabets. Can't really fix it now though... internal Hashtable contents = new Hashtable(); ///Implements a hashtable with the key strongly typed to be /// a string rather than an object. ///Consider this class obsolete - use Dictionary<String, String> instead /// with a proper StringComparer instance. ////// public StringDictionary() { } ///Initializes a new instance of the StringDictionary class. ///If you're using file names, registry keys, etc, you want to use /// a Dictionary<String, Object> and use /// StringComparer.OrdinalIgnoreCase. ////// public virtual int Count { get { return contents.Count; } } ///Gets the number of key-and-value pairs in the StringDictionary. ////// public virtual bool IsSynchronized { get { return contents.IsSynchronized; } } ///Indicates whether access to the StringDictionary is synchronized (thread-safe). This property is /// read-only. ////// public virtual string this[string key] { get { if( key == null ) { throw new ArgumentNullException("key"); } return (string) contents[key.ToLower(CultureInfo.InvariantCulture)]; } set { if( key == null ) { throw new ArgumentNullException("key"); } contents[key.ToLower(CultureInfo.InvariantCulture)] = value; } } ///Gets or sets the value associated with the specified key. ////// public virtual ICollection Keys { get { return contents.Keys; } } ///Gets a collection of keys in the StringDictionary. ////// public virtual object SyncRoot { get { return contents.SyncRoot; } } ///Gets an object that can be used to synchronize access to the StringDictionary. ////// public virtual ICollection Values { get { return contents.Values; } } ///Gets a collection of values in the StringDictionary. ////// public virtual void Add(string key, string value) { if( key == null ) { throw new ArgumentNullException("key"); } contents.Add(key.ToLower(CultureInfo.InvariantCulture), value); } ///Adds an entry with the specified key and value into the StringDictionary. ////// public virtual void Clear() { contents.Clear(); } ///Removes all entries from the StringDictionary. ////// public virtual bool ContainsKey(string key) { if( key == null ) { throw new ArgumentNullException("key"); } return contents.ContainsKey(key.ToLower(CultureInfo.InvariantCulture)); } ///Determines if the string dictionary contains a specific key ////// public virtual bool ContainsValue(string value) { return contents.ContainsValue(value); } ///Determines if the StringDictionary contains a specific value. ////// public virtual void CopyTo(Array array, int index) { contents.CopyTo(array, index); } ///Copies the string dictionary values to a one-dimensional ///instance at the /// specified index. /// public virtual IEnumerator GetEnumerator() { return contents.GetEnumerator(); } ///Returns an enumerator that can iterate through the string dictionary. ////// public virtual void Remove(string key) { if( key == null ) { throw new ArgumentNullException("key"); } contents.Remove(key.ToLower(CultureInfo.InvariantCulture)); } ///Removes the entry with the specified key from the string dictionary. ////// Make this StringDictionary subservient to some other collection. /// /// Replaces the backing store with another, possibly aliased Hashtable. internal void ReplaceHashtable(Hashtable useThisHashtableInstead) { contents = useThisHashtableInstead; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ //Some code was replacing the contents field with a Hashtable created elsewhere. /// While it may not have been incorrect, we don't want to encourage that pattern, because /// it will replace the IEqualityComparer in the Hashtable, and creates a possibly-undesirable /// link between two seemingly different collections. Let's discourage that somewhat by /// making this an explicit method call instead of an internal field assignment. ///// 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.ComponentModel.Design.Serialization; using System.Globalization; ////// [Serializable] [DesignerSerializer("System.Diagnostics.Design.StringDictionaryCodeDomSerializer, " + AssemblyRef.SystemDesign, "System.ComponentModel.Design.Serialization.CodeDomSerializer, " + AssemblyRef.SystemDesign)] // @ public class StringDictionary : IEnumerable { // For compatibility, we want the Keys property to return values in lower-case. // That means using ToLower in each property on this type. Also for backwards // compatibility, we will be converting strings to lower-case, which has a // problem for some Georgian alphabets. Can't really fix it now though... internal Hashtable contents = new Hashtable(); ///Implements a hashtable with the key strongly typed to be /// a string rather than an object. ///Consider this class obsolete - use Dictionary<String, String> instead /// with a proper StringComparer instance. ////// public StringDictionary() { } ///Initializes a new instance of the StringDictionary class. ///If you're using file names, registry keys, etc, you want to use /// a Dictionary<String, Object> and use /// StringComparer.OrdinalIgnoreCase. ////// public virtual int Count { get { return contents.Count; } } ///Gets the number of key-and-value pairs in the StringDictionary. ////// public virtual bool IsSynchronized { get { return contents.IsSynchronized; } } ///Indicates whether access to the StringDictionary is synchronized (thread-safe). This property is /// read-only. ////// public virtual string this[string key] { get { if( key == null ) { throw new ArgumentNullException("key"); } return (string) contents[key.ToLower(CultureInfo.InvariantCulture)]; } set { if( key == null ) { throw new ArgumentNullException("key"); } contents[key.ToLower(CultureInfo.InvariantCulture)] = value; } } ///Gets or sets the value associated with the specified key. ////// public virtual ICollection Keys { get { return contents.Keys; } } ///Gets a collection of keys in the StringDictionary. ////// public virtual object SyncRoot { get { return contents.SyncRoot; } } ///Gets an object that can be used to synchronize access to the StringDictionary. ////// public virtual ICollection Values { get { return contents.Values; } } ///Gets a collection of values in the StringDictionary. ////// public virtual void Add(string key, string value) { if( key == null ) { throw new ArgumentNullException("key"); } contents.Add(key.ToLower(CultureInfo.InvariantCulture), value); } ///Adds an entry with the specified key and value into the StringDictionary. ////// public virtual void Clear() { contents.Clear(); } ///Removes all entries from the StringDictionary. ////// public virtual bool ContainsKey(string key) { if( key == null ) { throw new ArgumentNullException("key"); } return contents.ContainsKey(key.ToLower(CultureInfo.InvariantCulture)); } ///Determines if the string dictionary contains a specific key ////// public virtual bool ContainsValue(string value) { return contents.ContainsValue(value); } ///Determines if the StringDictionary contains a specific value. ////// public virtual void CopyTo(Array array, int index) { contents.CopyTo(array, index); } ///Copies the string dictionary values to a one-dimensional ///instance at the /// specified index. /// public virtual IEnumerator GetEnumerator() { return contents.GetEnumerator(); } ///Returns an enumerator that can iterate through the string dictionary. ////// public virtual void Remove(string key) { if( key == null ) { throw new ArgumentNullException("key"); } contents.Remove(key.ToLower(CultureInfo.InvariantCulture)); } ///Removes the entry with the specified key from the string dictionary. ////// Make this StringDictionary subservient to some other collection. /// /// Replaces the backing store with another, possibly aliased Hashtable. internal void ReplaceHashtable(Hashtable useThisHashtableInstead) { contents = useThisHashtableInstead; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.Some code was replacing the contents field with a Hashtable created elsewhere. /// While it may not have been incorrect, we don't want to encourage that pattern, because /// it will replace the IEqualityComparer in the Hashtable, and creates a possibly-undesirable /// link between two seemingly different collections. Let's discourage that somewhat by /// making this an explicit method call instead of an internal field assignment. ///
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- Int32Rect.cs
- ZipIORawDataFileBlock.cs
- UTF32Encoding.cs
- CompensationTokenData.cs
- RegionIterator.cs
- CodePropertyReferenceExpression.cs
- SharedStatics.cs
- LinkedList.cs
- ResourceLoader.cs
- _SslStream.cs
- AttributeData.cs
- FixedSOMPageConstructor.cs
- PropertyTabChangedEvent.cs
- TextServicesContext.cs
- Vector3DIndependentAnimationStorage.cs
- RuleAttributes.cs
- XmlDataSourceView.cs
- InternalCache.cs
- ZeroOpNode.cs
- ValidatorUtils.cs
- DataGridViewUtilities.cs
- PerformanceCounterPermissionEntry.cs
- StyleCollectionEditor.cs
- Timer.cs
- ParallelEnumerableWrapper.cs
- Window.cs
- DocobjHost.cs
- ModelTreeManager.cs
- SqlBooleanMismatchVisitor.cs
- DataGridViewAccessibleObject.cs
- OrderedHashRepartitionStream.cs
- CollectionViewProxy.cs
- ListenerAdaptersInstallComponent.cs
- PerspectiveCamera.cs
- nulltextcontainer.cs
- DataGridViewRowEventArgs.cs
- GrammarBuilderRuleRef.cs
- EditorZoneBase.cs
- CharConverter.cs
- MaskInputRejectedEventArgs.cs
- XmlSerializer.cs
- ResourceContainer.cs
- WmlFormAdapter.cs
- IIS7WorkerRequest.cs
- TemplateBindingExpressionConverter.cs
- Command.cs
- AssociationSetEnd.cs
- TabletDevice.cs
- WebBrowserEvent.cs
- IisTraceWebEventProvider.cs
- CryptoProvider.cs
- StreamInfo.cs
- HMACMD5.cs
- Models.cs
- Vars.cs
- TimelineGroup.cs
- PersistChildrenAttribute.cs
- ServiceDescriptions.cs
- ToolBarButton.cs
- ContractNamespaceAttribute.cs
- SynchronizedDispatch.cs
- FormsAuthenticationModule.cs
- KeysConverter.cs
- StringAnimationBase.cs
- ScopeCollection.cs
- CollectionChangedEventManager.cs
- UiaCoreApi.cs
- ThrowHelper.cs
- TimeSpanOrInfiniteValidator.cs
- FixedPosition.cs
- InvariantComparer.cs
- SimpleRecyclingCache.cs
- NumericExpr.cs
- NameScopePropertyAttribute.cs
- tibetanshape.cs
- SmtpDigestAuthenticationModule.cs
- OutputCacheProfile.cs
- OracleConnectionFactory.cs
- WebExceptionStatus.cs
- LazyTextWriterCreator.cs
- DataTemplateKey.cs
- IISUnsafeMethods.cs
- BorderGapMaskConverter.cs
- TextFormatterHost.cs
- CodeDOMProvider.cs
- GroupBoxAutomationPeer.cs
- DependencyObjectPropertyDescriptor.cs
- PerformanceCounterPermission.cs
- Model3DCollection.cs
- SqlStream.cs
- DelegateSerializationHolder.cs
- HostingPreferredMapPath.cs
- ObjectDataSourceStatusEventArgs.cs
- MainMenu.cs
- SamlAdvice.cs
- LineBreakRecord.cs
- LessThanOrEqual.cs
- KnownTypesProvider.cs
- ConstructorNeedsTagAttribute.cs
- VBIdentifierName.cs