奇怪的问题,但我有StringComparer.OrdinalIgnoreCase创建一个字典,看起来像这样找到元素的拼写在忽略大小写字典
AAA,10
AAB,20
AAC,12
然后,我使用myDictionary [“AAA”]来查找与该键关联的值,但我还需要知道的是该键的拼写是在myDictionary中的,例如在这种情况下,我希望它返回AaA。任何方式没有循环做到这一点? Thx。
奇怪的问题,但我有StringComparer.OrdinalIgnoreCase创建一个字典,看起来像这样找到元素的拼写在忽略大小写字典
AAA,10
AAB,20
AAC,12
然后,我使用myDictionary [“AAA”]来查找与该键关联的值,但我还需要知道的是该键的拼写是在myDictionary中的,例如在这种情况下,我希望它返回AaA。任何方式没有循环做到这一点? Thx。
string value = myDictionary.First(v => StringComparer.Create(CultureInfo.CurrentCulture,true)
.Compare(v.Key,"AAA") == 0)
.Key
更改你的字典里,所以它看起来是这样的:
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;
不错,非常感谢。 – 2010-05-13 12:32:25
的字典定义为字典 所以myDictionary [ “AAA”]返回一个整数... –
2010-05-12 23:33:34
啊,你说得对。我已经用另一种解决方案修改了上面的答案(不利用OrdinalIgnoreCase字典,但是如果只是拔出密钥,可能会更容易)。 – 2010-05-13 13:24:16
我认为这个修正后的解决方案仍然在循环......循环只是委托给LINQ ...... – 2010-05-14 04:41:27