StringDictionaryWithComparer.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / CompMod / System / Collections / Specialized / StringDictionaryWithComparer.cs / 1305376 / StringDictionaryWithComparer.cs

                            //------------------------------------------------------------------------------ 
// 
//     Copyright (c) Microsoft Corporation.  All rights reserved.
// 
//----------------------------------------------------------------------------- 

// StringDictionary compares keys by converting them to lowercase first, using the Invariant culture. 
// This is not the right thing to do for file names, registry keys, environment variable etc. 
// This internal version of StringDictionary accepts an IEqualityComparer and enables you to
// customize the string comparison to be StringComparer.OrdinalIgnoreCase for the above cases. 

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]
    internal class StringDictionaryWithComparer : StringDictionary {

        public StringDictionaryWithComparer() : this(StringComparer.OrdinalIgnoreCase) { 
        }
 
        public StringDictionaryWithComparer(IEqualityComparer comparer) { 
            ReplaceHashtable(new Hashtable(comparer));
        } 

        public override string this[string key] {
            get {
                if( key == null ) { 
                    throw new ArgumentNullException("key");
                } 
 
                return (string) contents[key];
            } 
            set {
                if( key == null ) {
                    throw new ArgumentNullException("key");
                } 

                contents[key] = value; 
            } 
        }
 
        public override void Add(string key, string value) {
            if( key == null ) {
                throw new ArgumentNullException("key");
            } 

            contents.Add(key, value); 
        } 

        public override bool ContainsKey(string key) { 
            if( key == null ) {
                throw new ArgumentNullException("key");
            }
 
            return contents.ContainsKey(key);
        } 
 
        public override void Remove(string key) {
            if( key == null ) { 
                throw new ArgumentNullException("key");
            }

            contents.Remove(key); 
        }
    } 
} 

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
                        

Link Menu

Network programming in C#, Network Programming in VB.NET, Network Programming in .NET
This book is available now!
Buy at Amazon US or
Buy at Amazon UK