加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

[C#.NET][VB.NET] 实践 IEqualityComparer 不分大小写

发布时间:2020-12-16 01:23:31 所属栏目:百科 来源:网络整理
导读:[C#.NET][VB.NET] 实践 IEqualityComparer 不分大小写 实践 IEqualityComparer ,不分大小写比较 //实践 public class InComparer : IEqualityComparer { CaseInsensitiveComparer myComparer = new CaseInsensitiveComparer(); public int GetHashCode(obje

[C#.NET][VB.NET] 实践 IEqualityComparer 不分大小写


实践IEqualityComparer,不分大小写比较

       //实践
        public class InComparer : IEqualityComparer
        {
            CaseInsensitiveComparer myComparer = new CaseInsensitiveComparer();
            public int GetHashCode(object obj)
            {
                return obj.ToString().ToLowerInvariant().GetHashCode();
            }
            public new bool Equals(object x,object y)
            {
                if (myComparer.Compare(x,y) == 0)
                {
                    return true;
                }
                else
                {
                    return false;
                }
            }
        }


因为不分大小写所以First与first视为相同,程序在执行时会出现例外。

//引用类
Hashtable myData = new Hashtable(new InComparer());
myData.Add("First","1st");
myData.Add("Senond","2nd");
myData.Add("Third","3rd");
myData.Add("Fourth","4th");
myData.Add("Fifth","5th");
myData.Add("first","1st");
foreach (DictionaryEntry myEntry in myData)
{
       Console.WriteLine("{0} = {1}",myEntry.Key,myEntry.Value);
}


当然也可以用CollectionsUtil类来不分大小写,这段程序看起来就短多了。

Hashtable myColl = CollectionsUtil.CreateCaseInsensitiveHashtable();
myColl.Add("A","1234");
myColl.Add("a","1234");


若有谬误,烦请告知,新手发帖请多包涵

2010~2017 C# 第四季

原文:大专栏 ?[C#.NET][VB.NET] 实践 IEqualityComparer 不分大小写

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读