奇怪的問題,但我有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