Hashtable忽略大小写

在.net1.1中这样写

Hashtable htTemp = new Hashtable( new CaseInsensitiveHashCodeProvider(), new CaseInsensitiveComparer() );

到了,.net2.0后提示过期
所以可以像下面这样写。

class myCultureComparer : IEqualityComparer
    {
        
#region IEqualityComparer 成员
        
public CaseInsensitiveComparer myComparer;

        
public myCultureComparer()
        {
            myComparer 
= CaseInsensitiveComparer.DefaultInvariant;
        }

        
public myCultureComparer(CultureInfo myCulture)
        {
            myComparer 
= new CaseInsensitiveComparer(myCulture); 
        }

        
public new bool Equals(object x, object y)
        {
            
if (myComparer.Compare(x, y) == 0)
            {
                
return true;
            }
            
else
            {
                
return false;
            }
        }
        
public int GetHashCode(object obj)
        {
            
return obj.ToString().ToLower().GetHashCode();
        }

        
#endregion
    }

使用的时候

Hashtable htTemp1 = new Hashtable(new myCultureComparer());

posted on 2006-04-22 14:54  萝卜青菜  阅读(670)  评论(0编辑  收藏  举报

导航