vb.net – Case Insensitive Dictionary无效
发布时间:2020-12-17 00:21:48 所属栏目:大数据 来源:网络整理
导读:我花了几个小时试图弄清楚为什么我的泛型字典(Of String,String)不会忽略大小写. 这是我的代码: Dim test As New System.Collections.Generic.Dictionary(Of String,String)(System.StringComparison.OrdinalIgnoreCase)test.Add("FROG","1")Console.WriteL
我花了几个小时试图弄清楚为什么我的泛型字典(Of String,String)不会忽略大小写.
这是我的代码: Dim test As New System.Collections.Generic.Dictionary(Of String,String)(System.StringComparison.OrdinalIgnoreCase) test.Add("FROG","1") Console.WriteLine(test.ContainsKey("frog")) 控制台每次都显示“False”.它应该显示“真实”. 如果我使用: Console.WriteLine(test."frog")) 我得到一个KeyNotFoundException. 似乎完全忽略了Comparer参数. 到底是怎么回事?
正如暗示
here,这是一个简单的拼写错误.
问题是System.StringComparison.OrdinalIgnoreCase是一个整数枚举. 新的System.Collections.Generic.Dictionary(Of String,String)(System.StringComparison.OrdinalIgnoreCase)实际上是调用New(capacity As Integer)重载的构造函数,并传递5. 因此,要使其全部按预期工作,实例化行应为: Dim test As New System.Collections.Generic.Dictionary(Of String,String)(System.StringComparer.OrdinalIgnoreCase) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |