Foxtable(狐表)用户栏目专家坐堂 → [求助]字典的键区分大小写


  共有3476人关注过本帖树形打印复制链接

主题:[求助]字典的键区分大小写

帅哥哟,离线,有人找我吗?
chnfo
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2193 积分:18033 威望:0 精华:0 注册:2011/11/26 20:21:00
[求助]字典的键区分大小写  发帖心情 Post By:2020/12/11 17:23:00 [显示全部帖子]

设了一个dictionary,使用时意外发现键是区分大小写的,例如a,A都可以加到字典里去。这个算是bug?否则要用ucase,太不方便了

 回到顶部
帅哥哟,离线,有人找我吗?
chnfo
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2193 积分:18033 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2020/12/12 8:56:00 [显示全部帖子]

Dim lst As new List(of String)
If lst.Contains("a") = False Then 
lst.Add("a")
End If 

If lst.Contains("A") = False Then 
lst.Add("A")
End If 

For Each x As String In Lst
Output.Show(x)
Next

显示出两行:a和A

实际用dictionary测试也是一样的

但在实际处理的时候,例如要增量式导入外部数据,有A和a,一般会视同为同一个数据

每次都要这样转换,还挺麻烦的。毕竟用户在处理excel源数据的时候,要求统一先转换为大写或小写,对用户来说不方便啊
[此贴子已经被作者于2020/12/12 8:56:52编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
chnfo
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2193 积分:18033 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2020/12/12 9:10:00 [显示全部帖子]

网上看到一个帖,说是在C#中可以构建一个新类

C#中的Dictionary类,默认key是区分大小写的

在C#中定义一个Dictionary

    Dictionary<string,string> dictionary = new Dictionary<string,string>();

    dictionary.Add("a","b");

    dictionary.Add("A","B");//A与a是不同的

 

但如果想要创建不区分大小写的Dictionary类,也不是没有办法:

使用这样的构造方法就可以了:

Dictionary<string, string> sysHash = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase);


请教这个在狐表中能套用吗?该怎么用呢?


 回到顶部
帅哥哟,离线,有人找我吗?
chnfo
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2193 积分:18033 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2020/12/12 9:59:00 [显示全部帖子]

那么集合也能这么用吗?有没有类似的方法?
例如
dim lst as new list(of string)(StringComparer.OrdinalIgnoreCase)
[此贴子已经被作者于2020/12/12 10:04:57编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
chnfo
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2193 积分:18033 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2020/12/12 10:29:00 [显示全部帖子]

逛逛,这个字典用起来就好很多。要是能象字典一样list(of string)(不区分大小写)就方便多了
但list用起来挺麻烦的。

[此贴子已经被作者于2020/12/12 10:47:13编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
chnfo
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2193 积分:18033 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2020/12/14 11:02:00 [显示全部帖子]

如果主要使用不重复数据,那用hashset据网帖称,如果用add和for的话用list最快,contains比list效率要高

 回到顶部