.NET 通用字典:處理單一值的多個鍵
標準 .NET Dictionary
物件提供簡單的鍵到值存取。 但是,當多個鍵映射到相同值時,檢索與特定值關聯的鍵會變得複雜。本文介紹了使用自訂雙向字典的解決方案。
建構雙向字典
為了克服這個限制,我們建立了一個 BiDictionary<TFirst, TSecond>
類別。 此類別使用兩個內部字典管理兩個方向的鍵值關係:firstToSecond
(鍵到值)和 secondToFirst
(值到鍵)。
新增項目和存取資料
Add
方法可以有效地處理新增新的鍵值對。它會檢查現有條目,並在必要時建立新列表,以便為單一值儲存多個鍵。
BiDictionary
類別提供用於鍵到值和值到鍵存取的索引器。 為了避免歧義,還包括專用方法 GetByFirst
和 GetBySecond
。
說明性範例
讓我們考慮一個實際的例子:
<code class="language-C#">BiDictionary<int, string> greek = new BiDictionary<int, string>(); greek.Add(1, "Alpha"); greek.Add(2, "Beta"); greek.Add(5, "Beta"); ShowEntries(greek, "Alpha"); // Output: Alpha: [1] ShowEntries(greek, "Beta"); // Output: Beta: [2, 5] ShowEntries(greek, "Gamma"); // Output: Gamma: []</code>
ShowEntries
方法示範檢索給定值的鍵。 請注意“Beta”如何正確傳回兩個關聯的鍵(2 和 5)。 這展示了雙向字典處理每個值多個鍵的能力。
以上是如何有效地檢索與 .NET 字典中的單一值關聯的多個鍵?的詳細內容。更多資訊請關注PHP中文網其他相關文章!