[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 不分大小写

原文地址:https://www.cnblogs.com/chinatrump/p/11513141.html

时间: 2024-11-05 14:41:14

[C#.NET][VB.NET] 实践 IEqualityComparer 不分大小写的相关文章

新华三:字符串不分大小写去重

题目: 字符串去重,只有大小写的英文字母,英文字母去重时不分大小写,且第一个出现的为大写就输出大写,第一个出现的为小写就输出小写 Java:字符串不分大小写去重 1 import java.util.Arrays; 2 import java.util.Scanner; 3 4 public class Main { 5 6 public static void main(String[] args) { 7 Scanner sc=new Scanner(System.in); 8 while(

数据库区默认分大小写,改成不区分(记录)

1:改my.cnf文件 cd /etc vi my.cnf 在mysqld后面添加 lower_case_table_names=1(小心格式不然MySQL会报错) service mysql restart //重启 2:有些的这个就可以了  然而数据库排序格式会导致区分 1: 2: 3:第一个是区分,第二个不区分 原文地址:https://www.cnblogs.com/langgezuishuai/p/10678603.html

魅族容器云平台自动化运维实践

魅族容器云平台主要是基于 k8s 的技术.将从以下六个方面介绍魅族容器云的实践过程,分别是基本介绍.k8s 集群.容器网络.外部访问4/7层负载均衡.监控/告警/日志.业务发布/镜像/多机房. 1.基本介绍 魅族云平台的定位是私有云平台,主要是用于支撑在线业务,用以替换传统的虚拟化方式.目前现状是2017年完成全国三个数据中心的建设,年内完成90%业务的迁移. 我们是以小团队紧跟 k8s 社区步伐,快速迭代.低成本试错的方式来构建我们的平台的.同时,针对一些我们遇到的问题,做一些局部创新,在保证

【视频干货教程】高性能跨平台移动开发框架Weex最佳实践

Weex 作为阿里开源的高性能跨平台移动开发框架,开源至今倍受关注. 这次 WeexConf 将是Weex团队首次全明星阵容集体亮相,大会上半场是一个关于 Weex 你不能错过的 Keynote,下半场包含技术实践和最佳实践两个分论坛,让快速大家玩转 Weex. 直接阅读全文请点击:http://click.aliyun.com/m/9460/

1057 数零壹 (20 分)

题目:1057 数零壹 (20 分) 给定一串长度不超过 1 的字符串,本题要求你将其中所有英文字母的序号(字母 a-z 对应序号 1-26,不分大小写)相加,得到整数 N,然后再分析一下 N 的二进制表示中有多少 0.多少 1.例如给定字符串 PAT (Basic),其字母序号之和为:16+1+20+2+1+19+9+3=71,而 71 的二进制是 1000111,即有 3 个 0.4 个 1. 输入格式: 输入在一行中给出长度不超过 1.以回车结束的字符串. 输出格式: 在一行中先后输出 0

PAT Basic 1057 数零壹 (20 分)

给定一串长度不超过 1 的字符串,本题要求你将其中所有英文字母的序号(字母 a-z 对应序号 1-26,不分大小写)相加,得到整数 N,然后再分析一下 N 的二进制表示中有多少 0.多少 1.例如给定字符串 PAT (Basic),其字母序号之和为:16+1+20+2+1+19+9+3=71,而 71 的二进制是 1000111,即有 3 个 0.4 个 1. 输入格式: 输入在一行中给出长度不超过 1.以回车结束的字符串. 输出格式: 在一行中先后输出 0 的个数和 1 的个数,其间以空格分隔

PAT乙级:1057 数零壹 (20分)

PAT乙级:1057 数零壹 (20分) 题干 给定一串长度不超过 105 的字符串,本题要求你将其中所有英文字母的序号(字母 a-z 对应序号 1-26,不分大小写)相加,得到整数 N,然后再分析一下 N 的二进制表示中有多少 0.多少 1.例如给定字符串 PAT (Basic),其字母序号之和为:16+1+20+2+1+19+9+3=71,而 71 的二进制是 1000111,即有 3 个 0.4 个 1. 输入格式: 输入在一行中给出长度不超过 105.以回车结束的字符串. 输出格式: 在

DHTML---HTML5

1. HTML概述 网页是网站的表现层,各种编程语言(如Java)构成后台的逻辑,我们将后台逻辑做好然后通过页面表达.同时通过网页来与后台进行交互.而Html是我们做网页的基础,由浏览器来解析. 1.1 HTML概念 HTML(HyperText Markup Language )即超文本标记语言[超文本HyperText(规范): 超文本是用超链接的方法,将各种不同空间的文字信息组织在一起的网状文本. 链接 Hyper Link:超链接在本质上属于一个网页的一部分,它是一种允许我们同其他网页或

最佳vim技巧

最佳vim技巧----------------------------------------# 信息来源----------------------------------------www.vim.org         : 官方站点comp.editors        : 新闻组http://www.newriders.com/books/opl/ebooks/0735710015.html : Vim书籍http://vimdoc.sourceforge.net/cgi-bin/vim