区分大小写的词典键

spo*_*ots 8 c# dictionary key case-sensitive

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

MyDict["a"] == MyDict["A"]
Run Code Online (Sandbox Code Playgroud)

将返回真实.

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

MyDict.Add("A", "value1");
MyDict.Add("a", "value2");
Run Code Online (Sandbox Code Playgroud)

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

Mar*_*ers 12

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

Dictionary<string, string> myDict = new Dictionary<string, string>();
myDict.Add("A", "value1");
myDict.Add("a", "value2");
Run Code Online (Sandbox Code Playgroud)

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

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


Son*_*nül 8

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

ideone检查它.