簡體   English   中英

區分大小寫的詞典鍵

[英]Case Sensitive Dictionary Keys

我在網上發現了很多關於使字典能夠進行不區分大小寫查找的信息,如果我添加一個鍵/值對(“A”,“value”)調用

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

將返回真實。

我想知道的是,當我這樣做時,為什么我會收到“已添加密鑰”錯誤

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

如果我定義我的字典來做區分大小寫的查找。 有沒有辦法定義一個字典,以便能夠添加不同的套管密鑰?

默認情況下,字典區分大小寫 - 您無需執行任何操作。

Dictionary<string, string> myDict = new Dictionary<string, string>();
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運行良好。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM