在ignore case字典中查找元素的拼写

时间:2010-05-12 22:01:48

标签: c# dictionary

奇怪的问题,但我有一个用StringComparer.OrdinalIgnoreCase创建的字典,看起来像这样

AaA,10
aAB,20
AAC,12

然后我使用myDictionary [“AAA”]来查找与密钥相关联的值,但我还需要知道的是密钥的实际拼写在myDictionary中,例如在这种情况下,我希望它返回AaA。没有循环的任何方式吗? THX。

2 个答案:

答案 0 :(得分:2)

string value = myDictionary.First(v => StringComparer.Create(CultureInfo.CurrentCulture,true)
                  .Compare(v.Key,"AAA") == 0)
                  .Key

答案 1 :(得分:1)

更改字典,使其如下所示:

public struct myValue
{
    int myInt;
    string MixedCaseWord;
}

var dictionary = new Dictionary<string, myValue>(StringComparer.OrdinalIgnoreCase);

var key = "AaA";
dictionary.Add(key, new MyValue { myInt = 10, MixedCaseWord = key }); 

var correctSpelling = dictionary["AAA"].MixedCaseWord;