区分大小写的词典键

我在网上发现了很多关于使字典能够进行不区分大小写的查找的信息,如果我添加一个键/值对(“A”,“value”)调用

MyDict["a"] == MyDict["A"] 

将返回true。

我想知道的是,当我这样做时,为什么我会收到“已添加密钥”错误

 MyDict.Add("A", "value1"); MyDict.Add("a", "value2"); 

如果我定义我的字典来做区分大小写的查找。 有没有办法定义一个字典,以便能够添加不同的套管密钥?

默认情况下,字典区分大小写 – 您无需执行任何操作。

 Dictionary myDict = new Dictionary(); myDict.Add("A", "value1"); myDict.Add("a", "value2"); 

查看您在此处在线工作的代码: ideone 。

如果您的代码出现错误,那么因为其中一个密钥已存在于您的字典中。

所有Dictionaries都具有案例敏感性。 但是,您可以使用StringComparer类提供的不区分大小写的字符串比较器来创建具有不区分大小写的字符串键的字典。

从ideone检查它。

如果他使用StringDictionary类,OP实际上是正确的。 Microsoft的网站声明密钥在存储之前会转换为小写( https://msdn.microsoft.com/en-us/library/system.collections.specialized.stringdictionary(v=vs.110).aspx )。 为了使密钥区分大小写,使用Generic Dictionary作为Mark Byers建议可以很好地工作。 如果你想要一个不区分大小写的键,StringDictionary效果很好。