首頁 > 後端開發 > C++ > 如何檢索與通用字典中的單一值關聯的多個鍵?

如何檢索與通用字典中的單一值關聯的多個鍵?

Mary-Kate Olsen
發布: 2025-01-21 03:42:10
原創
710 人瀏覽過

How Can I Retrieve Multiple Keys Associated with a Single Value in a Generic Dictionary?

從泛型字典中擷取給定值的多個鍵

使用索引器語法從 .NET 泛型字典中基於給定鍵檢索值非常簡單。但是,由於可能存在多個鍵具有相同的值,因此檢索與指定值對應的鍵可能會更具挑戰性。

介紹 BiDictionary 資料結構

為了解決這個問題,開發了 BiDictionary 資料結構,允許在鍵和值之間進行雙向映射。它維護兩個內部字典:

  • firstToSecond:將第一個類型鍵對應到第二個類型值的清單。
  • secondToFirst:將第二型別值對應到第一型別鍵的清單。

實作細節

BiDictionary 類別提供方法來新增鍵值對並基於任一鍵類型檢索值。例如:

<code class="language-csharp">BiDictionary<int, string> greek = new BiDictionary<int, string>();
greek.Add(1, "Alpha");
greek.Add(2, "Beta");
greek.Add(5, "Beta");

IList<int> betaKeys = greek["Beta"]; // 返回 [2, 5]</code>
登入後複製

實作使用空列表作為不存在鍵的預設回傳值,確保您始終收到一個列表,即使它是空的。

可自訂索引器

為方便起見,BiDictionary 包括可自訂的索引器,這些索引器可根據呼叫鍵類型直接存取內部字典。這透過允許您使用索引器語法來簡化對值的存取:

<code class="language-csharp">BiDictionary<int, string> greek = new BiDictionary<int, string>();
greek.Add(1, "Alpha");
greek.Add(2, "Beta");

string secondGreek = greek[2]; // 返回 "Beta"</code>
登入後複製

範例用法

提供的程式碼示範了 BiDictionary 的功能:

<code class="language-csharp">BiDictionary<int, string> greek = new BiDictionary<int, string>();
greek.Add(1, "Alpha");
greek.Add(2, "Beta");
greek.Add(5, "Beta");

ShowEntries(greek, "Alpha"); // 打印 "Alpha: [1]"
ShowEntries(greek, "Beta"); // 打印 "Beta: [2, 5]"
ShowEntries(greek, "Gamma"); // 打印 "Gamma: []"</code>
登入後複製

此範例示範如何檢索與給定值對應的鍵,並且它透過傳回空列表優雅地處理不存在的值的情況。

以上是如何檢索與通用字典中的單一值關聯的多個鍵?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板