请问各位老大,如何继承一个集合类的泛型,但是要忽略大小写比较?
public class ConfigCollection : System.Collections.Generic.Dictionary<string,ConfigElement>
这样定义以后,对于key的比较是大小写敏感的。
我需要或略大小写的比较,
ConfigCollection["Abc"]和ConfigCollection["aBC"]应该返回同样的value;
在使用中申明忽略大小写我知道,就是给出构造函数的参数。但是我继承的类在使用中,new ConfigCollection()后面没有参数可输入.
怎么办呢???????????????????????????????????????????????????????

解决方案 »

  1.   

    public class ConfigCollection : System.Collections.Generic.Dictionary<string,ConfigElement>给这个类加个构造函数public ConfigCollectin() : base(StringComparer.CurrentCultureIgnoreCase)
      

  2.   

    class UpcaseComparer : IEqualityComparer<string>
      {
          #region IEqualityComparer<string> Members      public bool Equals(string x, string y)
          {
              return string.Compare(x, y, true) == 0;
          }      public int GetHashCode(string obj)
          {
              return obj.ToUpper().GetHashCode();
          }      #endregion
      }
      static void Main(string[] args)
      {
          Dictionary<string, string> dic = new Dictionary<string, string>(new UpcaseComparer());
          dic.Add("aBc", "abc");      Console.WriteLine(dic["abc"] + "  " + dic["ABC"]);
      }
      

  3.   

    比如:
    public class ConfigCollection : System.Collections.Generic.Dictionary<string,ConfigElement>
    {
       public ConfigCollection() : base(new UpcaseComparer())
     {
         
     }
    }